• Email: contact@refbax.com

Comment envoyer un mail avec Python ?

Refbax > Cours en ligne > Comment envoyer un mail avec Python ?
Temps de lecture : 3 minutes

Bonjour à tous et bienvenue dans ce nouveau guide Python sur la façon d’envoyer un courriel à l’aide d’un programme écrit en code Python. Vous n’avez pas besoin de télécharger de contenu supplémentaire pour suivre ce guide, à condition que Python soit déjà installé sur votre système. Ce code devrait fonctionner avec Python 2 et Python 3.

Raisons d’envoyer un courriel à partir d’un script Python

Il y a plusieurs raisons pour lesquelles quelqu’un voudrait envoyer un courriel automatique à partir d’un script Python. Par exemple, si vous avez un site doté d’un système de notification, vous pouvez envoyer un courriel à vos utilisateurs lorsqu’ils ont une nouvelle notification. Vous pouvez aussi créer un système de rapports pour votre serveur qui vous informe par courriel lorsque quelque chose ne va pas. Il existe de nombreuses autres situations où l’envoi d’e-mails automatisés peut s’avérer très utile. Dans ce guide, nous allons voir comment envoyer ces courriels en utilisant l’un des langages de programmation les plus populaires aujourd’hui : Python

Comment envoyer un courriel à partir d’un script Python avec smtplib

Le script pour envoyer un email avec Python est très simple. Dans cet exemple, nous allons utiliser la bibliothèque smtplib pour python. Cette bibliothèque fait partie des bibliothèques de base de Python, il n’est donc pas nécessaire de télécharger quoi que ce soit.

import smtplib

# Configuration SMTP | Ici ajusté pour fonctionné avec Gmail
host_smtp = "smtp.gmail.com"
port_smtp = 587
email_smtp = "mon_email@gmail.com" # Mon email Gmail
mdp_smtp = "MonMdpKompliqu3"  # Mon mot de passe

# Configuration du mail
prenom = "Julien"
formule_p = "Des bises :-*"
email_destinataire = "julien.fake@ndd.tld"
mail_content = f'Bonjour {prenom}, tu viens de recevoir mon premier mail, envoyé avec Python ! {formule_p}'

# Création de l'objet mail
mail = smtplib.SMTP(host_smtp, port_smtp) # cette configuration fonctionne pour gmail
mail.ehlo() # protocole pour SMTP étendu
mail.starttls() # email crypté
mail.login(email_smtp, mdp_smtp)
mail.sendmail(email_smtp, email_destinataire, mail_ content)
mail.close()

Cet exemple est spécifique à ceux qui envoient un courriel en utilisant un compte Gmail. Si vous n’utilisez pas Gmail, vous pouvez vérifier quel serveur utiliser à partir de la liste en bas de la page. Il suffit de trouver le serveur qui vous convient et de le remplacer à la ligne 3 du code. Le reste du code est assez intuitif à comprendre.

Lire la suite
Chief Data Officer

Problèmes courants liés à l’envoi d’e-mails avec Python

  • Un des problèmes souvent rencontrés lors du test de ce script est l’erreur

AttributeError : L’objet ‘module’ ne possède pas d’attribut ‘SMTP’

Cette erreur se produit dans la plupart des cas parce que vous avez nommé votre fichier : email.py

Le nom "email.py " est un nom réservé, car Python utilise déjà un fichier portant ce nom en interne.

Pour résoudre le problème, il suffit de changer le nom du fichier.

  • Une autre erreur souvent rencontrée est :

smtplib.SMTPAuthenticationError : Nom d’utilisateur et mot de passe non acceptés

Cette erreur (comme son nom l’indique) provient du fait qu’une erreur s’est produite lors du processus de vérification des informations de connexion. Cela peut être causé par deux choses :

  • Vous n’avez pas le bon email ou le bon mot de passe : vérifiez soigneusement si l’email et le mot de passe sont bien les bons.

  • Vous utilisez un système d’authentification à deux facteurs. Pour envoyer un courriel avec Python en utilisant un système d’authentification à deux facteurs, vous devez d’abord générer un mot de passe spécifique à l’application. Pour créer un mot de passe d’application pour Gmail, cliquez ici : https://support.google.com/accounts/answer/185833?hl=fr

Liste des serveurs SMTP

Voici une liste de quelques serveurs SMTP couramment utilisés :

Prestataire Serveur Port
Gmail smtp.gmail.com 465
Gmail smtp.gmail.com 587
Outlook smtp.live.com 587
Office365 smtp.office365.com 587
Yahoo smtp.mail.yahoo.com 465
Hotmail smtp.live.com 465

Si vous avez une question, vous pouvez la poser dans les commentaires ci-dessous

J’espère que cela vous a aidé d’une manière ou d’une autre. Soutenez cette page en aimant nos pages sociales en cliquant ci-dessous, où nous publions régulièrement des nouvelles, des didacticiels et des faits amusants sur l’informatique. Merci et à la prochaine fois 🙂

Lire la suite
Hello World - Python

Webmarketing et Développement vont pour moi de paire. J'ai eu la chance de pouvoir pratiquer les deux en entreprise depuis presque 13 ans, en agence d'abord ensuite chez l'annonceur (en savoir plus sur moi). J'imagine Refbax comme un lieu de partage de connaissance, de veille, mais aussi un espace où il serait possible de trouver le travail de ses rêves. J'espère que vous trouverez un peu de cela en parcourant le site.

Leave a Comment

Qui suis-je ! 👨‍💻
Premier site alliant formation / Actualité et les offres d’emplois autour des métiers du digital. Des outils pour vous aider dans vos campagnes de content marketing ou de SEO.
Premier site alliant formation / Actualité et les offres d’emplois autour des métiers du digital. Des outils pour vous aider dans vos campagnes de content marketing ou de SEO.
Contact Us