Antes de todo debemos configurar nuestra cuenta, para que permita el acceso de aplicaciones menos seguras, es decir, que nos permita autenticar nuestra cuenta desde nuestro script en python.
Para ello nos dirigimos a nuestra cuenta de Gmail y habilitamos la opción "Permitir el acceso de aplicaciones menos seguras":
Para ello nos dirigimos a nuestra cuenta de Gmail y habilitamos la opción "Permitir el acceso de aplicaciones menos seguras":
Ahora si podemos loguearnos, luego necesitaremos crear un archivo que contendrá el mensaje que vamos a enviar, en mi caso yo cree un archivo llamado "body.txt" que contiene el siguiente mensaje:
El cual debemos indicar la ubicacion en nuestro script:
import time, datetime import smtplib file_log = '/home/paolo/Escritorio/body.txt' def SendEmail(user, pwd, recipient, subject, body): gmail_user= user gmail_pass = pwd FROM = user TO = recipient if type(recipient) is list else [recipient] SUBJECT = subject TEXT = body message = """\From: %s\nTo: %s\nSubject: %s\n\n%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT) try: server = smtplib.SMTP("smtp.gmail.com", 587) server.ehlo() print server.ehlo() server.starttls() server.ehlo() print server.ehlo() server.login(gmail_user, gmail_pass) print("logueado") server.sendmail(FROM, TO, TEXT) print("enviando") server.close() print ('Correo enviado satisfactoriamente!') except Exception as e: print(e) def FormatAndSendLogEmail(): with open(file_log, 'r+') as f: actualdate = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") data = f.read().replace('\n', '') data = 'Log capturado a las: '+ actualdate + '\n' + data print(data) SendEmail('unacuentafake@gmail.com', 'clavedelacuenta', 'correoamandar@gmail.com', 'Nuevo log - '+actualdate, data) f.seek(0) f.truncate() FormatAndSendLogEmail() print("fin")
Enviando un e-mail
En nuestro script tenemos 2 funciones (una para pasarle los datos que requiere: FormatAndSendLoEmail y otra la funcion en si que envia el e-mail: SendEmail).
Lo primero que debemos hacer es modificar la variable de nuestro archivo que contiene el mensaje a enviar:
file_log = 'ruta/body.txt'
Luego debemos modificar los datos que pasamos a la funcion SendEmail:
SendEmail('unacuentafake@gmail.com', 'clavedelacuenta', 'correoamandar@gmail.com', 'Nuevo log - '+actualdate, data)
Ademas si deseamos hacerlo con otro servidor de correo, debemos configurar esta parte
del código, en el caso de Gmail es asi:
server = smtplib.SMTP("smtp.gmail.com", 587)
Y por ultimo correr nuestro Script:
Si no tenemos ningún error, significa que todo ha salido bien.
Ahora veamos al correo enviado:
Y pues eso es todo, así de sencillo. Si no les aparece el correo en la bandeja
de entrada, revisen en Spam, por lo general aparece ahí.
No hay comentarios.:
Publicar un comentario