Python envoyer un e-mail

Comment envoyer un e-mail à l’aide de Python

Python est un langage doté de nombreuses fonctionnalités. Il peut être utilisé pour l’analyse de données, le développement Web, etc. Ce n’est pas tout, Python a une fonctionnalité cachée : vous pouvez l’utiliser pour envoyer des emails. Cela signifie que vous pouvez envoyer des e-mails de réinitialisation de mot de passe, des e-mails de mot de passe oublié, des notifications d’utilisateur et tout autre e-mail que vous souhaitez envoyer à partir d’un programme Python.

Dans ce guide, nous allons discuter de la façon d’envoyer un e-mail en utilisant Python. Nous allons parcourir les bibliothèques de courrier électronique et smtplib, leur fonctionnement et écrire un exemple de programme pour envoyer un courrier électronique.

Sans plus tarder, commençons !

Envoi d’e-mails à l’aide de Python

Lorsque vous envoyez un e-mail à partir d’un programme informatique, votre programme enverra le message en utilisant un protocole appelé Simple Mail Transfer Protocol (SMTP). Ce protocole est utilisé par les services de messagerie et les clients du monde entier pour envoyer des messages.

Pour envoyer un e-mail à partir d’un programme informatique, vous devez disposer d’un serveur SMTP. Vous pouvez en créer un vous-même, mais vous n’êtes pas toujours obligé de le faire. Des services tels que Gmail et Outlook fournissent des services SMTP afin que vous puissiez utiliser vos comptes de messagerie existants pour envoyer un e-mail.

Pour ce guide, nous allons supposer que vous envoyez un e-mail à partir de Gmail‚Äô Serveur SMTP. Vous pouvez en savoir plus sur leur serveur SMTP dans la documentation officielle de Gmail. Pour savoir si votre fournisseur de messagerie prend en charge SMTP, recherchez en ligne ‚Äò[nom de votre fournisseur] identifiants SMTP‚Äô.

Nous avons trois étapes à suivre pour envoyer un e-mail :

  • Configurer notre connexion SMTP
  • Créer un objet message
  • Envoyer le message via SMTP

Configuration une connexion SMTP

Pour commencer, configurons notre connexion SMTP. Nous pouvons le faire en utilisant une bibliothèque appelée smtplib qui fournit tout le code dont nous avons besoin pour gérer la connexion. Gr√¢ce à cette bibliothèque, il suffit de quelques lignes de code pour envoyer un e-mail.

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi dans la technologie après avoir assisté à un bootcamp. Soyez associé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Commencez par importer la bibliothèque smtplib dans votre code :

Nous avons maintenant pour configurer des variables qui stockent les informations d’identification de notre serveur SMTP. Stocker ces valeurs dans des variables nous aidera à maintenir la lisibilité de notre code. Voici les variables que nous allons utiliser :

Ce code contient toute la configuration dont nous avons besoin pour créer une connexion SMTP. Maintenant que nous avons cette configuration, nous pouvons nous connecter à notre serveur SMTP :

Notre code crée une connexion SSL à notre serveur SMTP. Cela signifie que nous utilisons Secure Socket Layer (SSL) pour nous connecter à notre serveur. SSL est plus sécurisé qu’une connexion traditionnelle et par conséquent, il est devenu un standard sur les serveurs SMTP.

Notre connexion SMTP est maintenant configurée !

Créer un objet Message

Notre code ne fait pas grand-chose pour le moment : il n’envoie certainement pas d’e-mail. C’est parce que nous n’avons pas encore créé d’objet message. Faisons-le en utilisant la bibliothèque de messagerie. Bien que vous puissiez utiliser smtplib pour créer un objet de message, la bibliothèque de messagerie est plus concise.

Commençons par importation les packages de messagerie nécessaires :

Avec ces bibliothèques importées, nous pouvons créer notre objet message :

Nous avons commencé par initialiser un objet appelé ‚Äòmessage‚Äô. Cet objet fait référence à la classe MIMEMultipart de la bibliothèque de messagerie. Nous avons ensuite spécifié le corps de notre e-mail ainsi que l’expéditeur, le destinataire et l’objet.

Notre dernière ligne de code attache le corps de notre message à notre e-mail.

Envoyer le message

Maintenant tout ça‚Äôs il ne reste plus qu’à envoyer notre message :

Lorsque nous exécutons tout notre code ensemble, un e-mail est envoyé ! Un e-mail intitulé "Ceci est un e-mail de test" est envoyé de [email protected] à [email protected]

Lecture d’un modèle à partir d’un fichier

Le corps de notre e-mail ne fait qu’une ligne. Cela signifie qu’il est plus pratique pour nous d’écrire le corps de notre e-mail en Python. La plupart des e-mails sont plus longs que cela , et il est donc préférable de créer un modèle qui stocke le texte d’un e-mail particulier.

Nous allons commencer par créer un fichier calle d email.txt et en collant le contenu suivant :

Ce modèle contient une variable appelée "NAME‚", qui est entourée d’accolades ({}) et est précédée d’un signe dollar ($). Cette variable sera remplacée par le nom du destinataire plus tard dans notre code.

Nous allons maintenant devoir lire ce modèle dans notre code. Nous pouvons le faire en créant une classe appelée read_email qui utilise la méthode open() pour lire notre fichier.

Nous importerons l’objet Template de la bibliothèque de chaaînes. Nous utiliserons cet objet pour créer un objet qui pourra être lu par notre e-mail. Collez la ligne de code suivante en haut de votre programme Python :

Sous toutes vos déclarations d’importation, collez ce code :

"Python.Engineering est entré dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à m’adapter à un bootcamp. Deux mois après après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et à mes objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Ceci fonction lira le fichier appelé "email.txt‚" dans la variable "contenu". Sa valeur est ensuite convertie en un objet Template à l’aide de la méthode Template de la "string‚" une bibliothèque. Vous pouvez en savoir plus sur la lecture de fichiers dans notre tutoriel de lecture de fichier Python.

Modifiez la ligne de code suivante dans votre programme :

Pour utiliser ce code :

Ce code appelle la fonction read_email() dans notre code pour lire le contenu du fichier "email.txt‚". Ensuite, la valeur de NAME dans notre modèle d’e-mail est remplacée par la valeur "Test‚". Ensemble, notre code ressemble à ceci :

Lorsque vous exécutez ce programme, en remplaçant vos identifiants de serveur SMTP, un e-mail sera envoyé. Vous venez d’écrire un programme pour envoyer un e-mail.

Conclusion

Envoyer un e-mail en Python ne doit pas être difficile. Sans l’utilisation d’un modèle, l’envoi d’un e-mail ne prend que quelques lignes de code. Les modules email et smtplib font le gros du travail. Cela dit, vous pouvez utiliser le module de messagerie plus largement pour créer des modèles pour vos e-mails qui peuvent remplacer des valeurs.

√ätes-vous prêt à relever un défi ? Modifiez le programme ci-dessus pour prendre en charge l’envoi d’e-mails à plusieurs destinataires. Astuce : Vous voudrez utiliser une boucle for pour envoyer ces e-mails.

Maintenant, vous êtes prêt à commencer à envoyer des e-mails en Python comme un expert !