Envoyer un e-mail en Python
Najwa Riyaz
12 octobre 2021
Pour envoyer un email en utilisant Python, utilisez les fonctions suivantes de la bibliothèque smtplib
.
SMTP(SMTP_SERVER, SMTP_PORT)
- crée une session SMTP selon le serveur SMTP et les détails du port SMTP.starttls()
- pour démarrer le TLS pour la configuration de la sécurité.login(SMTP_USERNAME, SMTP_PASSWORD)
- pour fournir les détails d’authentification de l’expéditeur de l’e-mail.sendmail(EMAIL_FROM, EMAIL_TO, the_message)
- pour envoyer le message de l’expéditeur au destinataire.quit()
pour quitter la session SMTP.
Voici un exemple qui illustre l’envoi de courrier via le serveur SMTP de Gmail.
import smtplib
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"
s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = "Subject: {}\n\n{}".format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()
La sortie peut ressembler à ce qui suit selon la connexion établie à ce stade de votre système -
(221, b"2.0.0 closing connection t12sm4676768pfc.133 - gsmtp")
En conséquence, l’e-mail est envoyé. Le destinataire reçoit le message avec succès.
Noter:
- Dans le cas de Gmail, fournissez les détails SMTP suivants :
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
De plus, le paramètre suivant doit être activé dans Gmail avant d’exécuter le code.
https://myaccount.google.com/lesssecureapps
- Dans le cas de Yahoo Mail, fournissez les détails SMTP suivants :
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587
De plus, générez un mot de passe d'application
Yahoo avant d’exécuter le code. Vérifiez le lien ci-dessous.
https://help.yahoo.com/kb/generate-separate-password-sln15241.html
- De même, si vous souhaitez utiliser un autre fournisseur de messagerie, utilisez les détails et les prérequis de son serveur SMTP respectif.