Le script que j'utilise est assez similaire; Je l'affiche ici comme un exemple de la façon d'utiliser l'email. * Modules pour générer des messages MIME; donc ce script peut être facilement modifié pour attacher des images, etc.
Je compte sur mon FAI pour ajouter l'en-tête de date-heure.
Mon FAI me demande d'utiliser une connexion smtp sécurisée pour envoyer du courrier, je compte sur le module ssmtplib (téléchargeable http://www1.cs.columbia.edu/~db2501/ssmtplib.py)
Comme dans votre script, le nom d'utilisateur et mot de passe, (donné des valeurs fictives ci-dessous), utilisé pour s'authentifier sur le serveur SMTP, sont en texte brut dans la source. C'est une faiblesse de sécurité; mais la meilleure alternative dépend de la prudence dont vous avez besoin (vouloir?) pour les protéger.
=======================================
#! /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
Assurez-vous que vous obtenez la date/heure correcte. J'ai trouvé la fonction suivante assez utile, qui vous donne une valeur parfaitement formatée pour l'en-tête de date: http://docs.python.org/py3k/library/email.util.html#email.utils.formatdate – BastiBen
un exemple de code qui permet de [envoyer un e-mail avec du texte Unicode dans le sujet et/ou dans le corps] (http://stackoverflow.com/a/20787826/4279) – jfs
Voici un exemple de code qui montre comment [envoyer des images en ligne (plus email avec des parties html et en texte clair)] (http://stackoverflow.com/a/20485764/4279). Il montre également comment configurer les paramètres ssl sur les anciennes versions de Python. – jfs