Para poder enviar e-mail desde un servidor (u ordenador local), en primer lugar, es necesario contar con un MTA (Mail Transpor Agent o “Agente de transporte de correo”). Uno de los MTA más populares para sistemas linux, es sendmail. Por lo tanto debemos instalarlo:
sudo apt-get install sendmail
Para enviar e-mails desde Python, éste nos provee smtplib, otro módulo de la librería estándar de Python, quien nos permitirá enviar mensajes de correo electrónico, incluso, en formato HTML.
Solo necesitaremos:
- Crear un objeto smtplib.SMTP el cuál recibirá como parámetro de su método constructor, el host (localhost)
- Crear un mensaje de correo: Enviar el mensaje mediante una llamada al método sendmail del objeto SMTP.
Veamos el código :
import smtplib
remitente = "ElmachodelPirulin <emanuel@blog.com.ar>"
destinatario = "Ella <ella@gmail.com>"
asunto = "E-mail enviado desde Python"
mensaje = """Hola!<br/> <br/>
Este es un <b>e-mail</b> enviando desde <b>Python</b>
"""
email = """From: %s
To: %s
MIME-Version: 1.0
Content-type: text/html
Subject: %s
%s""" % (remitente, destinatario, asunto, mensaje)
try:
smtp = smtplib.SMTP('localhost')
smtp.sendmail(remitente, destinatario, email)
print "Correo enviado"
except:
print """Error: el mensaje no pudo enviarse.
Compruebe que sendmail se encuentra instalado en su sistema"""
Así de simple, enviamos un e-mail con Python!