Envoyer un e-mail en Python

Najwa Riyaz 12 octobre 2021
Envoyer un e-mail en Python

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.