[Python] EmailSender 0.5 by Subzer.

Iniciado por Subzer, Noviembre 29, 2012, 09:18:18 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 29, 2012, 09:18:18 PM Ultima modificación: Noviembre 29, 2012, 09:32:57 PM por Subzer
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
#!/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

PABLO ESCOBAR.

Diciembre 09, 2012, 06:57:12 PM #1 Ultima modificación: Diciembre 09, 2012, 07:00:05 PM por fortil
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

Ahi rapidamente te hice y explique uno :

Código: python
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
Sigueme en Twitter : @Sankosk
Estos nuevos staff no tienen puta idea XD

Envia texto plano o tambien sirve para enviar html ?