Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[tkinter/Gmail] Email-Sender

  • 9 Respuestas
  • 5696 Vistas

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

Desconectado Sajuuk

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • "The demons of my own design"
    • Ver Perfil
    • Email
  • Twitter: @BarlanV
« en: Enero 19, 2015, 04:12:23 am »
(Mi primer aporte! :'D)
Buenas noches/tardes/días, escribí este simple email sender como parte de mis prácticas con tkinter (y de paso con smtplib), y con Python 3.4
Código: Python
  1. # Coded by Barlan. 2015
  2. from tkinter import *
  3. from tkinter.messagebox import showinfo, showerror
  4. import smtplib
  5.  
  6. class Login(Tk):
  7.         '''Here the Login window appears and receives data from:
  8.                 - Email account.
  9.                 - Password.
  10.                 Also, tries to log in to your gmail account.'''
  11.         def __init__(self):
  12.                 try:
  13.                         self.gmail = smtplib.SMTP("smtp.gmail.com", 587)
  14.                 except Exception as e:
  15.                         showerror("Fatal Error", str(e))
  16.                         exit()
  17.                 Tk.__init__(self)
  18.                 #self.geometry("268x157")
  19.                 self.resizable(0,0)
  20.                 self.title("e-Sender")
  21.                 self.config(bg="black")
  22.                
  23.                 me = StringVar()
  24.                 mp = StringVar()
  25.                 Label(self, text="Your Gmail account:", bg="black", fg="green").grid(row = 0, column = 0, sticky=W)
  26.                 self.my_email = Entry(self, textvariable=me, width = 25)
  27.                 self.my_email.grid(row = 0, column = 1)
  28.  
  29.                 Label(self, text="Your Password:", bg="black", fg="green").grid(row = 1, column = 0, sticky=W)
  30.                 self.my_passw = Entry(self, textvariable=mp, width = 25)
  31.                 self.my_passw.grid(row = 1, column = 1)
  32.  
  33.                 self.email_button = Button(self, text="Enter", command=self.login_gmail, bg="black", fg="green")
  34.                 self.email_button.grid(row = 2, column = 0, sticky=NSEW)
  35.  
  36.                 salir = Button(self, text="Exit", command=self.quit, bg="black", fg="red")
  37.                 salir.grid(row = 2, column = 1, sticky=NSEW)
  38.  
  39.         def login_gmail(self):
  40.                 account = self.my_email.get()
  41.                 self.password = self.my_passw.get()
  42.                 self.gmail.ehlo()
  43.                 self.gmail.starttls()
  44.                 try:
  45.                         self.gmail.login(account, self.password)
  46.                         showinfo("Success", "You are now logged in Gmail.")
  47.                 except:
  48.                         showerror("Error", "Unable to login into %s." % account)
  49.                         exit()
  50.                 gmail = self.gmail
  51.                 newEmail(gmail, account)
  52.                 self.withdraw()
  53.  
  54. class newEmail(Login):
  55.         ''' Now we can create a new email, specifying:
  56.                         - to
  57.                         - subject
  58.                         - message'''
  59.         def __init__(self, gmail, account):
  60.                 Tk.__init__(self)
  61.                 self.resizable(0,0)
  62.                 self.title("New Email")
  63.                 self.config(bg="black")
  64.                 self.gmail = gmail
  65.                 self.email = account
  66.  
  67.                 et = StringVar()
  68.                 es = StringVar()
  69.                 Label(self, text="From: %s" % account, bg="black", fg="orange").grid(row=0, column=0, sticky=NSEW)
  70.  
  71.                 Label(self, text="To:", bg="black", fg="green").grid(row = 1, column = 0, sticky=W)
  72.                 self.email_to = Entry(self, textvariable=et, width = 25)
  73.                 self.email_to.grid(row = 1, column = 1, sticky=E)
  74.  
  75.                 Label(self, text="Subject:", bg="black", fg="green").grid(row = 2, column = 0, sticky=W)
  76.                 self.email_subject = Entry(self, textvariable=es, width = 25)
  77.                 self.email_subject.grid(row = 2, column = 1, sticky=E)
  78.  
  79.                 Label(self, text="Your Message:", bg="black", fg="green").grid(row = 3, column = 0, sticky=W)
  80.                 self.email_msg = Text(self, width = 25, height = 5)
  81.                 self.email_msg.grid(row = 3, column = 1, sticky=E)
  82.  
  83.                 self.email_button = Button(self, text="Send", command=self.sendEmail, bg="black", fg="green")
  84.                 self.email_button.grid(row = 4, column = 0, sticky=NSEW)
  85.  
  86.                 salir = Button(self, text="Exit", command=self.quit, bg="black", fg="red")
  87.                 salir.grid(row = 4, column = 1, sticky=NSEW)
  88.  
  89.         def sendEmail(self):
  90.                 self.to = self.email_to.get()
  91.                 self.subject = self.email_subject.get()
  92.                 self.msg = self.email_msg.get("1.0", END)
  93.                 headers = "From: %s\nTo: %s\nSubject: %s\n\n" % (self.email, self.to, self.subject)
  94.                 body = str(headers + self.msg)
  95.                 try:
  96.                         self.gmail.sendmail(self.email, self.to, body)
  97.                         showinfo("Completed","Email sent successfully to %s" % self.to)
  98.                         exit()
  99.                 except Exception as e:
  100.                         showerror("Error", str(e))
  101.                         exit()
  102.  
  103. L = Login()
  104. L.mainloop()
  105.  





Probablemente se puede añadir o quitar cosas, pero solo fué de práctica, ya luego lo mejoraré (si es que me acuerdo xD).
Saludos!
« Última modificación: Mayo 06, 2015, 10:23:51 pm por Barlan »


Conectado blackdrake

  • *
  • Co Admin
  • Mensajes: 1921
  • Actividad:
    3.33%
  • Reputación 15
    • Ver Perfil
« Respuesta #1 en: Enero 19, 2015, 09:07:38 am »
Muy bueno Barlan! ahora voy a leer el código para ver como lo has hecho, la interfaz me gusta bastante, simple y eficaz!

Un saludo.



Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 876
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #2 en: Enero 19, 2015, 09:29:44 am »
Muy bueno, te comento que en py no se porque mis conocimientos en ese leguaje son bajos, pero en php no hace falta introducir contraseña para mandar correo desde x email, podrias intentarlo, como un reto.

Desconectado Sajuuk

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • "The demons of my own design"
    • Ver Perfil
    • Email
  • Twitter: @BarlanV
« Respuesta #3 en: Enero 19, 2015, 01:42:44 pm »
Muy bueno Barlan! ahora voy a leer el código para ver como lo has hecho, la interfaz me gusta bastante, simple y eficaz!

Un saludo.

Si, tenía planeado personalizarlo más, no sé ponerle una imagen simple de fondo (entre otras imagenes), pero no supe como. Probablemente si se puede, pero no conozco mucho de tkinter. De hecho, en el proceso aprendí muchisimo de el. Así que si álguien es tan amable de decirme como hacerlo, se lo agradecería mucho.

Saludos!

Muy bueno, te comento que en py no se porque mis conocimientos en ese leguaje son bajos, pero en php no hace falta introducir contraseña para mandar correo desde x email, podrias intentarlo, como un reto.

Es un proyecto viejito que nunca terminé, gracias por recordarmelo. xD
Lo escribiré esta semana, aprovechando que estos días la escuela no será un gran peso mental.
Espero publicarlo pronto.

Saludos!


Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #4 en: Enero 19, 2015, 03:53:42 pm »
Muy bueno bro, gracias por compartir el código. Solo una recomendación, intenta usar para las identaciones solo cuatro espacios.

Saludos!

Desconectado Sajuuk

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • "The demons of my own design"
    • Ver Perfil
    • Email
  • Twitter: @BarlanV
« Respuesta #5 en: Enero 20, 2015, 12:22:41 pm »
Muy bueno bro, gracias por compartir el código. Solo una recomendación, intenta usar para las identaciones solo cuatro espacios.

Saludos!

Gracias.
Y gracias por la recomendación. ;D


Desconectado Snifer

  • *
  • Underc0der
  • Mensajes: 1439
  • Actividad:
    0%
  • Reputación 1
  • [email protected]'s
    • Ver Perfil
    • Snifer@L4bs
  • Twitter: sniferl4bs
« Respuesta #6 en: Enero 21, 2015, 08:08:21 am »
Muy bueno, te comento que en py no se porque mis conocimientos en ese leguaje son bajos, pero en php no hace falta introducir contraseña para mandar correo desde x email, podrias intentarlo, como un reto.

Claro que puedes hacerlo usando una libreria propia, creando un smtp local lo que hace este script es mandar el correo por medio de GMAIL logueandote en una cuenta y a partir de ello realiza el bombardeo.


Por otra parte buen código a seguir mejorandolo!..

Regards,
Snifer
http://www.sniferl4bs.com


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Desconectado Sajuuk

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • "The demons of my own design"
    • Ver Perfil
    • Email
  • Twitter: @BarlanV
« Respuesta #7 en: Enero 21, 2015, 02:08:41 pm »
Muy bueno, te comento que en py no se porque mis conocimientos en ese leguaje son bajos, pero en php no hace falta introducir contraseña para mandar correo desde x email, podrias intentarlo, como un reto.

Claro que puedes hacerlo usando una libreria propia, creando un smtp local lo que hace este script es mandar el correo por medio de GMAIL logueandote en una cuenta y a partir de ello realiza el bombardeo.


Por otra parte buen código a seguir mejorandolo!..

Regards,
Snifer

Gracias.  ;D


Desconectado frykytxuso

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #8 en: Abril 14, 2017, 08:26:23 am »
Muy bueno, te comento que en py no se porque mis conocimientos en ese leguaje son bajos, pero en php no hace falta introducir contraseña para mandar correo desde x email, podrias intentarlo, como un reto.

quieres decir que puedo mandar un correo de gmail desde una cuenta que no sea mia?
o entendi mal?

Conectado xyz

  • *
  • Moderador
  • Mensajes: 486
  • Actividad:
    15%
  • Reputación 10
    • Ver Perfil
    • Under0cde
« Respuesta #9 en: Abril 14, 2017, 03:23:36 pm »
Muy bueno, te comento que en py no se porque mis conocimientos en ese leguaje son bajos, pero en php no hace falta introducir contraseña para mandar correo desde x email, podrias intentarlo, como un reto.

quieres decir que puedo mandar un correo de gmail desde una cuenta que no sea mia?
o entendi mal?
Exacto.
 Ya que sólo inicia sesión en el servidor smtp.

 Saludos !!

 

¿Te gustó el post? COMPARTILO!



[Ejemplo] Enviar mensaje desde tu cuenta Gmail [Python]

Iniciado por LucaSthefano

Respuestas: 3
Vistas: 2518
Último mensaje Junio 26, 2011, 09:02:30 pm
por LucaSthefano
script en python para envio de mail con cuenta en gmail

Iniciado por StepClose

Respuestas: 3
Vistas: 4121
Último mensaje Junio 12, 2018, 03:09:03 am
por master_bin
como con cx_Freeze exportar tkinter a exe con algunas librerias usadas

Iniciado por royer14

Respuestas: 2
Vistas: 2160
Último mensaje Noviembre 08, 2017, 07:58:37 pm
por royer14
[Python\Tkinter] Consola de comandos Kyurem V2.0

Iniciado por Razel

Respuestas: 0
Vistas: 1784
Último mensaje Agosto 17, 2013, 11:52:08 am
por Razel
24sms.net Sender

Iniciado por Sanko

Respuestas: 2
Vistas: 3138
Último mensaje Junio 03, 2013, 02:33:32 am
por Sanko