[tkinter/Gmail] Email-Sender

Iniciado por Sajuuk, Enero 19, 2015, 04:12:23 AM

Tema anterior - Siguiente tema

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

Enero 19, 2015, 04:12:23 AM Ultima modificación: Mayo 06, 2015, 10:23:51 PM por Barlan
(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
# 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()






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!


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.



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.
RollthBuen hacker mejor No tienes permitido ver los links. Registrarse o Entrar a mi cuenta/No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi 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 los links. Registrarse o Entrar a mi 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!


Muy bueno bro, gracias por compartir el código. Solo una recomendación, intenta usar para las identaciones solo cuatro espacios.

Saludos!







No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi 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


No tienes permitido ver los links. Registrarse o Entrar a mi 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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


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



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi 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


No tienes permitido ver los links. Registrarse o Entrar a mi 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?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi 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 !!