Underc0de

Programación Scripting => Python => Mensaje iniciado por: Subzer en Noviembre 29, 2012, 09:18:18 PM

Título: [Python] EmailSender 0.5 by Subzer.
Publicado por: Subzer en Noviembre 29, 2012, 09:18:18 PM
Buenas, les presento otro código hecho por mi basado en un Enviador de emails realizado por Sthefano02.
Es un Email Sender que lo que hace es enviar un email sin tener que abrir la página y en mi opinión lo envía mucho más rapido que en la página abierta ya que lo envia directamente desde la consola o en el .exe si es que lo crean.


Resumen:
*Enviar email desde Yahoo
*Enviar email desde Gmail
*Enviar email desde Hotmail

Código (python) [Seleccionar]
#!/usr/bin/env python
import time
import smtplib
import mimetypes
from email.MIMEText import MIMEText
from email.Encoders import encode_base64


def Enviar_Mensaje1(User, Password, Body, Subject, To):
    try:
        mensaje = MIMEText(Body)
        mensaje['From']=(User)
        mensaje['To']=(To)
        mensaje['Subject']=(Subject)
        mailServer = smtplib.SMTP('smtp.gmail.com', 587)
        mailServer.ehlo()
        mailServer.starttls()
        mailServer.ehlo()
        mailServer.login(User, Password)
        mailServer.sendmail(User,
                            To,
                            mensaje.as_string())
        return 'Mensaje enviado correctamente'
        mailServer.close()
    except:
        return 'Error al enviar mensaje'

def Enviar_Mensaje2(User, Password, Body, Subject, To):
    try:
        mensaje = MIMEText(Body)
        mensaje['From']=(User)
        mensaje['To']=(To)
        mensaje['Subject']=(Subject)
        mailServer = smtplib.SMTP('smtp.live.com', 587)
        mailServer.ehlo()
        mailServer.starttls()
        mailServer.ehlo()
        mailServer.login(User, Password)
        mailServer.sendmail(User,
                            To,
                            mensaje.as_string())
        return 'Mensaje enviado correctamente'
        mailServer.close()
    except:
        return 'Error al enviar mensaje'

def Enviar_Mensaje3(User, Password, Body, Subject, To):
    try:
        mensaje = MIMEText(Body)
        mensaje['From']=(User)
        mensaje['To']=(To)
        mensaje['Subject']=(Subject)
        mailServer = smtplib.SMTP('smtp.mail.yahoo.com', 587)
        mailServer.ehlo()
        mailServer.starttls()
        mailServer.ehlo()
        mailServer.login(User, Password)
        mailServer.sendmail(User,
                            To,
                            mensaje.as_string())
        return 'Mensaje enviado correctamente'
        mailServer.close()
    except:
        return 'Error al enviar mensaje'
   
def Salir():
    exit()
     
def logo():
    print '''
---------------------------------------
|EmailSender0.5 by Subzer.            |
|Contact:Underc0deForum/YT:SubzerCode |
|Forum: Underc0de.org                 |
|Based on: Sthefano02 email code      |
---------------------------------------
    ''' 

def main():
    print '''
<Bienvenido al menu, escoge tu servidor de correo electronico>
1 - Gmail
2 - Hotmail
3 - Yahoo
<Si tu servidor no aparece aqui, porfavor actualiza MailSender by Subzer>
'''
    pregunta = raw_input('Porfavor coloca el numero del menu: ')

    if (pregunta == '1'):
        print "<Help>"
        User = raw_input('Introduce tu email: ')
        Password = raw_input('Coloca tu contrasena: ')
        Body = raw_input('Redacta el mensaje a enviar: ')
        Subject = raw_input('Asunto del mensaje: ')
        To = raw_input('Coloca el email a quien se lo envias: ')
        print '%s' % Enviar_Mensaje1(User, Password, Body, Subject, To)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    if (pregunta == '2'):
        User = raw_input('Introduce tu email: ')
        Password = raw_input('Coloca tu contrasena: ')
        Body = raw_input('Redacta el mensaje a enviar: ')
        Subject = raw_input('Asunto del mensaje: ')
        To = raw_input('Coloca el email a quien se lo envias: ')
        print '%s' % Enviar_Mensaje2(User, Password, Body, Subject, To)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
    if (pregunta == '3'):
        User = raw_input('Introduce tu email: ')
        Password = raw_input('Coloca tu contrasena: ')
        Body = raw_input('Redacta el mensaje a enviar: ')
        Subject = raw_input('Asunto del mensaje: ')
        To = raw_input('Coloca el email a quien se lo envias: ')
        print '%s' % Enviar_Mensaje3(User, Password, Body, Subject, To)
 
    else:
        print 'Debes escoger una opcion..'
        print ""
        print ""
        main()

logo()
time.sleep(1)
main()


Espero que les haya gustado el código y si hay algún error, o quieren agregarle algo es totalmente aceptado ya que es código abierto.
Saludos, Subzer!

EDITO: Cambié un pequeño error del código ya puede funcionar correctamente, menosmal que me dí cuenta antes de que lo probaran y me criticaran xd
Título: Re:[Python] EmailSender 0.5 by Subzer.
Publicado por: fortil en Diciembre 09, 2012, 06:57:12 PM
excelente aporte


lo miraré luego y le modificaré, o si puedes modificarle para que cargue una lista de mails y verificar si se pueden enviar mail's masivos, será genial

y será que se puede poner también archivos adjuntos?

gracias
Título: Re:[Python] EmailSender 0.5 by Subzer.
Publicado por: Sanko en Diciembre 09, 2012, 07:37:11 PM
Ahi rapidamente te hice y explique uno :

Código (python) [Seleccionar]
import smtplib
import mimetypes
from email.MIMEText import MIMEText
from email.Encoders import encode_base64

#datos
mails = 'ruta txt de la lista de mails'
fakemail = 'el mail que quieres que se muestre'
user = 'usuario'
psw = 'password'
mensj = 'mensaje'

def mailer():
arch = open(mails,'r') #abrimos la lista.txt de mails
x = arch.read() # leemos la lista y almacenamos en var x
org = x.split('') #split para quitar espacios y guardamos en org
large = len(x) #aqui sacamos el largo de la lista(caracteres) y almacenamos
i = 0
#Iniciamos bucle
while i<large:# mientras que i sea menor que large
sv = smtplib.SMTP('smtpserver',587)# indicamos el server y puerto
sv.ehlo()
sv.starttls()
sv.ehlo()
sv.login(user,psw)
sv.sendmail(fakemail,org[i],mensj)
#Ahi recogemos todos lso datos para enviar el mail
i+=1 #incrementamos hasta llegar al numero final de mails
arch.close()


Hace un tiempo lo tenia en mi libreria de cuando andaba aprendiendo smtplib
Título: Re:[Python] EmailSender 0.5 by Subzer.
Publicado por: jul14n4 en Octubre 30, 2013, 07:50:24 AM
Envia texto plano o tambien sirve para enviar html ?