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)

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.