El script que uso es bastante similar; Lo publico aquí como un ejemplo de cómo usar los módulos de correo electrónico. * Para generar mensajes MIME; por lo que este script se puede modificar fácilmente para adjuntar imágenes, etc.
Confío en mi ISP para agregar el encabezado de fecha y hora.
Mi ISP me obliga a utilizar una conexión segura SMTP para enviar correo, que se basan en el módulo ssmtplib (descargable en http://www1.cs.columbia.edu/~db2501/ssmtplib.py)
Al igual que en la secuencia de comandos, el nombre de usuario y contraseña, (dada valores ficticios a continuación), utilizados para autenticarse en el servidor SMTP, están en texto sin formato en la fuente. Esta es una debilidad de seguridad; pero la mejor alternativa depende del cuidado que necesita (¿quiere?) para protegerlos.
=======================================
#! /usr/local/bin/python
SMTPserver = 'smtp.att.yahoo.com'
sender = '[email protected]_email_domain.net'
destination = ['[email protected]_email_domain.com']
USERNAME = "USER_NAME_FOR_INTERNET_SERVICE_PROVIDER"
PASSWORD = "PASSWORD_INTERNET_SERVICE_PROVIDER"
# typical values for text_subtype are plain, html, xml
text_subtype = 'plain'
content="""\
Test message
"""
subject="Sent from Python"
import sys
import os
import re
from smtplib import SMTP_SSL as SMTP # this invokes the secure SMTP protocol (port 465, uses SSL)
# from smtplib import SMTP # use this for standard SMTP protocol (port 25, no encryption)
# old version
# from email.MIMEText import MIMEText
from email.mime.text import MIMEText
try:
msg = MIMEText(content, text_subtype)
msg['Subject']= subject
msg['From'] = sender # some SMTP servers will do this automatically, not all
conn = SMTP(SMTPserver)
conn.set_debuglevel(False)
conn.login(USERNAME, PASSWORD)
try:
conn.sendmail(sender, destination, msg.as_string())
finally:
conn.quit()
except Exception, exc:
sys.exit("mail failed; %s" % str(exc)) # give a error message
Asegúrate de que la Fecha/Hora sea correcta. Encontré la siguiente función bastante útil, que le da un valor perfectamente formateado para el encabezado de fecha: http://docs.python.org/py3k/library/email.util.html#email.utils.formatdate – BastiBen
aquí un ejemplo de código que permite [enviar un correo electrónico con texto Unicode en el asunto y/o en el cuerpo] (http://stackoverflow.com/a/20787826/4279) – jfs
aquí hay un ejemplo de código que demuestra cómo [enviar imágenes en línea (más correo electrónico con partes html y texto sin formato)] (http://stackoverflow.com/a/20485764/4279). También muestra cómo configurar los parámetros ssl en versiones antiguas de Python. – jfs