Comment envoyer un email avec Python
Dans ce tutoriel nous allons découvrir comment envoyer un email avec Python en utilisant le module smtplib. Python comprend plusieurs modules dans la bibliothèque standard pour travailler avec les e-mails et les serveurs de messagerie.
Le module smtplib
Le module smtplib définit un objet de session client SMTP qui peut être utilisé pour envoyer des e-mails à n’importe quelle machine Internet avec un démon SMTP ou ESMTP.
SMTP signifie Simple Mail Transfer Protocol. Les modules smtplib sont utiles pour communiquer avec les serveurs de messagerie pour envoyer des e-mails.
L’envoi des e-mails se fait avec le module smtplib de Python à l’aide d’un serveur SMTP.
L’utilisation varie en fonction de la complexité de l’e-mail et des paramètres du serveur de messagerie, les instructions ici sont basées sur l’envoi d’e-mails via Gmail.
Utilisation de smtplib
La première étape consiste à créer un objet SMTP, chaque objet est utilisé pour la connexion avec un serveur.
import smtplib server = smtplib.SMTP('smtp.gmail.com', 587) server.connect("smtp.example.com",465) #Ensuite, connectez-vous au serveur Gmail server.login("[email protected]", "password") #Le message à envoyer msg = "Hello!" #Envoyez le mail server.sendmail("[email protected]", "[email protected]", msg) server.quit()
Pour inclure les en-têtes From, To et Subject, nous devons utiliser le package email, car smtplib ne modifie pas du tout le contenu ou les en-têtes.
Utilisation de email
Le package email en Python contient de nombreuses classes et fonctions pour la composition et l’analyse des e-mails.
import smtplib, ssl from email.message import EmailMessage msg = EmailMessage() msg.set_content("Le corps de l'e-mail est ici") msg["Subject"] = "Email de Test" msg["From"] = "[email protected]" msg["To"] = "[email protected]" context=ssl.create_default_context() with smtplib.SMTP("smtp.example.com", port=587) as smtp: smtp.starttls(context=context) smtp.login(msg["From"], "password") smtp.send_message(msg)