Comment envoyer des messages électroniques automatisés en Python

Comment envoyer des messages électroniques automatisés en Python

Alors que les clients de messagerie commerciaux offrent la commodité d'une interface graphique conviviale, ils manquent souvent de la flexibilité et de la personnalisation souhaitées par de nombreux développeurs ou créateurs de contenu pour leurs besoins en matière de messagerie.





Que ce soit pour envoyer un e-mail de remerciement à un nouvel abonné sur votre canal de médias sociaux ou pour ajouter une fonctionnalité de messagerie à votre dernier projet, la possibilité d'envoyer des messages automatisés à l'aide de SMTP en Python est quelque chose qui sera forcément utile.





Lisez la suite pour découvrir comment vous pouvez obtenir un script Python pour envoyer des e-mails en cours d'exécution sur votre machine aujourd'hui.





Qu'est-ce que SMTP ?

Pour faire simple, SMTP, ou Simple Mail Transfer Protocol, est un protocole de communication permettant aux serveurs de messagerie de transmettre des e-mails sur Internet.

Il fait partie intégrante de la couche application de la suite TCP/IP, qui est un ensemble de protocoles utilisés pour la communication sur Internet ou d'autres réseaux similaires. Dans un réseau où SMTP est implémenté, un processus appelé stocker et transmettre aide à déplacer le courrier à travers les réseaux.



À chaque point de terminaison, un logiciel appelé Mail Transfer Agent (MTA) utilise le stockage et le transfert pour faciliter la communication entre les serveurs SMTP participants. Le rôle principal de SMTP est donc simplement de dicter où et comment le courrier se déplace d'un point à un autre dans un réseau.

Commencer

Vous devez avoir un compte de messagerie à utiliser pour envoyer des e-mails à l'aide de ce programme. En effet, nous utiliserons le service SMTP du client de messagerie pour envoyer des e-mails. Pour ce tutoriel, nous utiliserons Gmail.





Vous pouvez également utiliser un serveur de débogage SMTP local pour envoyer des e-mails de test, mais pour l'instant, nous utiliserons un compte de messagerie pour envoyer des e-mails car il est plus intuitif.

Il est possible d'utiliser simplement un compte Gmail existant, mais au fur et à mesure que vous jouez avec votre programme, il peut bientôt se remplir d'e-mails de test. C'est pourquoi nous vous recommandons de créer un compte « jetable » à des fins de test.





Maintenant, activez l'option pour autoriser les applications moins sécurisées pour accéder à votre compte Gmail. C'est une autre raison d'utiliser un e-mail jetable car il n'est pas recommandé de jouer avec les paramètres de confidentialité de votre e-mail principal.

Rédiger l'e-mail en Python

Python 3 est pré-installé avec un module appelé smtplib (abréviation de smtp library), qui peut être utilisé pour fonctionner avec les serveurs SMTP.

Comme tout autre module Python, la première chose à faire est d'importer smtplib.

import smtplib

Initialisation d'un objet SMTP

Maintenant, vous pouvez utiliser smtplib pour créer un objet SMTP, qui vous fournira la plupart des fonctionnalités d'un client de messagerie conventionnel. Cependant, les fonctions d'un objet SMTP ne peuvent être utilisées que via des méthodes d'instance. Alors, naturellement, l'étape suivante consiste à déclarer une instance d'objet.

mySMTP = smtplib.SMTP('smtp.google.com')

Cela configure l'objet SMTP pour envoyer des e-mails à l'aide du serveur SMTP de Google.

Après cela, nous spécifions les e-mails de l'expéditeur et du destinataire. C'est ici que le compte Gmail que vous avez créé plus tôt est utile.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Une chose à noter ici est que la liste des destinataires est en fait un tableau, ce qui signifie qu'elle est conçue pour stocker des valeurs non atomiques. En conséquence, vous pouvez même spécifier une liste de diffusion entière dans ce champ !

Écrire le message

Sans doute la partie la plus simple du processus, ici, vous devez saisir les valeurs que vous ajouteriez normalement lors de la rédaction d'un nouvel e-mail. Ceci comprend:

  • Coordonnées de l'expéditeur
  • Coordonnées du destinataire
  • Sujet
  • Corps du message

Ces champs sont regroupés entre guillemets triples et délimités comme suit :

pourquoi ma vitesse wifi fluctue-t-elle autant
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Envoi de l'e-mail

Enfin, nous pouvons utiliser la commande sendmail pour envoyer le courrier de votre serveur SMTP au serveur du destinataire.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Maintenant, il ne reste qu'une dernière étape : réorganiser le code pour éviter tout plantage prévisible du programme.

Dépannage de votre programme de messagerie Python

Parfois, votre serveur SMTP peut ne pas réussir à établir une connexion avec celui du destinataire, ou il peut y avoir un problème avec l'envoi d'un e-mail d'un port SMTP à un autre. Dans un tel cas, votre programme peut se bloquer de manière inattendue.

Pour tenir compte de telles possibilités, vous pouvez utiliser un essayer-sauf bloquer et mettre les instructions sujettes aux erreurs à l'intérieur du essayer bloquer. L'ensemble de votre programme, ainsi que le bloc try-except, devrait ressembler à ceci :

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

Sécuriser vos e-mails

Si vous avez l'intention d'utiliser Python dans un environnement réel pour envoyer des e-mails, il est important de vous assurer que la communication est sécurisée des deux côtés.

L'utilisation d'un simple serveur SMTP avec le port par défaut ne fournit aucune couche de cryptage à la communication. Cela signifie que si un tiers écoute sur votre réseau, il peut accéder à vos identifiants de connexion et aux informations contenues dans votre e-mail.

Une façon de contourner ce problème est d'utiliser le protocole TLS (Transport Layer Security) pour crypter votre communication. Il s'agit du même protocole utilisé par les principaux clients de messagerie tels que Gmail et Outlook pour garantir que vos e-mails ne tombent jamais entre de mauvaises mains.

Pour ce faire, nous devons apporter quelques modifications mineures au programme que nous avons créé précédemment.

La première étape, bien sûr, consiste à importer le SSL bibliothèque avec smtplib . Les SSL La bibliothèque vous donne la possibilité de créer un contexte SSL sécurisé et de communiquer sur un réseau crypté en vous connectant à des ports spécifiques aux deux extrémités.

Un contexte SSL sécurisé n'est rien d'autre qu'une collection de chiffrements, de versions de protocole, de certificats de confiance, d'options TLS et d'extensions TLS.

Ensuite, nous pouvons spécifier le port TLS et ajouter quelques SSL fonctions de la bibliothèque pour créer un e-mail sécurisé.

Le code, avec toutes les modifications apportées, ressemble à ceci :

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

Comme auparavant, vous devez créer et utiliser l'instance SMTP dans un bloc try-except afin d'éviter tout plantage brutal du programme.

connecter le contrôleur xbox au pc bluetooth

Ce que vous pouvez faire avec ce script Python

Maintenant que vous avez acquis la compétence impressionnante et étonnamment utile d'automatiser les e-mails à l'aide de code, vous pouvez l'appliquer à n'importe quelle plate-forme qui nécessite l'envoi d'e-mails à une liste de diffusion diversifiée.

De l'utiliser sur votre site Web personnel pour envoyer des e-mails de confirmation automatisés à l'utiliser pour envoyer des cartes de Noël ou des invitations à votre famille et à vos amis, les utilisations de ce petit script Python ne sont limitées que par votre propre créativité.

De plus, ce n'est qu'une des nombreuses choses impressionnantes que vous pouvez faire avec Python. Avec sa prise en charge omniprésente des développeurs et sa syntaxe facile à apprendre, acquérir une compétence Python n'a jamais été aussi simple.

Pour continuer à créer des choses sympas avec du code, consultez notre guide sur la façon de créez votre propre bot Telegram avec Python 3 !

Partager Partager Tweeter E-mail Comment mettre à niveau vos compétences Python et IA avec Keras, Pytorch, Tensorflow, etc.

Améliorez vos compétences en programmation et en développement Web sur Python, l'intelligence artificielle, Keras, PyTorch, etc.

Lire la suite
Rubriques connexes
  • La programmation
  • Gmail
  • Conseils sur les e-mails
  • Python
  • Automatisation des tâches
A propos de l'auteur Yash Chellani(10 articles publiés)

Yash est un aspirant étudiant en informatique qui aime construire des choses et écrire sur tout ce qui touche à la technologie. Dans son temps libre, il aime jouer au squash, lire un exemplaire du dernier Murakami et chasser les dragons dans Skyrim.

Plus de Yash Chellani

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner