Underc0de

Programación Scripting => Python => Mensaje iniciado por: Sajuuk en Enero 19, 2015, 04:12:23 AM

Título: [tkinter/Gmail] Email-Sender
Publicado por: Sajuuk 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) [Seleccionar]
# Coded by Barlan. 2015
from tkinter import *
from tkinter.messagebox import showinfo, showerror
import smtplib

class Login(Tk):
'''Here the Login window appears and receives data from:
- Email account.
- Password.
Also, tries to log in to your gmail account.'''
def __init__(self):
try:
self.gmail = smtplib.SMTP("smtp.gmail.com", 587)
except Exception as e:
showerror("Fatal Error", str(e))
exit()
Tk.__init__(self)
#self.geometry("268x157")
self.resizable(0,0)
self.title("e-Sender")
self.config(bg="black")

me = StringVar()
mp = StringVar()
Label(self, text="Your Gmail account:", bg="black", fg="green").grid(row = 0, column = 0, sticky=W)
self.my_email = Entry(self, textvariable=me, width = 25)
self.my_email.grid(row = 0, column = 1)

Label(self, text="Your Password:", bg="black", fg="green").grid(row = 1, column = 0, sticky=W)
self.my_passw = Entry(self, textvariable=mp, width = 25)
self.my_passw.grid(row = 1, column = 1)

self.email_button = Button(self, text="Enter", command=self.login_gmail, bg="black", fg="green")
self.email_button.grid(row = 2, column = 0, sticky=NSEW)

salir = Button(self, text="Exit", command=self.quit, bg="black", fg="red")
salir.grid(row = 2, column = 1, sticky=NSEW)

def login_gmail(self):
account = self.my_email.get()
self.password = self.my_passw.get()
self.gmail.ehlo()
self.gmail.starttls()
try:
self.gmail.login(account, self.password)
showinfo("Success", "You are now logged in Gmail.")
except:
showerror("Error", "Unable to login into %s." % account)
exit()
gmail = self.gmail
newEmail(gmail, account)
self.withdraw()

class newEmail(Login):
''' Now we can create a new email, specifying:
- to
- subject
- message'''
def __init__(self, gmail, account):
Tk.__init__(self)
self.resizable(0,0)
self.title("New Email")
self.config(bg="black")
self.gmail = gmail
self.email = account

et = StringVar()
es = StringVar()
Label(self, text="From: %s" % account, bg="black", fg="orange").grid(row=0, column=0, sticky=NSEW)

Label(self, text="To:", bg="black", fg="green").grid(row = 1, column = 0, sticky=W)
self.email_to = Entry(self, textvariable=et, width = 25)
self.email_to.grid(row = 1, column = 1, sticky=E)

Label(self, text="Subject:", bg="black", fg="green").grid(row = 2, column = 0, sticky=W)
self.email_subject = Entry(self, textvariable=es, width = 25)
self.email_subject.grid(row = 2, column = 1, sticky=E)

Label(self, text="Your Message:", bg="black", fg="green").grid(row = 3, column = 0, sticky=W)
self.email_msg = Text(self, width = 25, height = 5)
self.email_msg.grid(row = 3, column = 1, sticky=E)

self.email_button = Button(self, text="Send", command=self.sendEmail, bg="black", fg="green")
self.email_button.grid(row = 4, column = 0, sticky=NSEW)

salir = Button(self, text="Exit", command=self.quit, bg="black", fg="red")
salir.grid(row = 4, column = 1, sticky=NSEW)

def sendEmail(self):
self.to = self.email_to.get()
self.subject = self.email_subject.get()
self.msg = self.email_msg.get("1.0", END)
headers = "From: %s\nTo: %s\nSubject: %s\n\n" % (self.email, self.to, self.subject)
body = str(headers + self.msg)
try:
self.gmail.sendmail(self.email, self.to, body)
showinfo("Completed","Email sent successfully to %s" % self.to)
exit()
except Exception as e:
showerror("Error", str(e))
exit()

L = Login()
L.mainloop()


(http://i58.tinypic.com/1ryfjo.png)

(http://i61.tinypic.com/2lc9yc6.png)

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!
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: blackdrake 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.
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: rollth 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.
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: Sajuuk en Enero 19, 2015, 01:42:44 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
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!

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
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!
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: Once 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!
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: Sajuuk en Enero 20, 2015, 12:22:41 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
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
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: Snifer en Enero 21, 2015, 08:08:21 AM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
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
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: Sajuuk en Enero 21, 2015, 02:08:41 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
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
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: frykytxuso en Abril 14, 2017, 08:26:23 AM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
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?
Título: Re:[tkinter/Gmail] Email-Sender
Publicado por: xyz en Abril 14, 2017, 03:23:36 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
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 !!