Alors que les clients de messagerie commerciaux offrent la commodité d'une interface graphique conviviale, ils manquent souvent de la flexibilité et la personnalisation que de nombreux développeurs ou créateurs de contenu souhaitent pour leur envoi par courrier électronique Besoins.
Que ce soit pour envoyer un e-mail de remerciement à un nouvel abonné sur votre canal de réseau social ou pour ajouter une fonctionnalité de messagerie à votre dernier projet, la possibilité d'envoyer des messages automatisés en utilisant SMTP en Python est quelque chose qui ne manquera pas d'entrer pratique.
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 transférer permet de déplacer le courrier sur 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 didacticiel, 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.
Ecrire 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 travailler avec des serveurs SMTP.
Comme tout autre module Python, la première chose à faire est d'importer smtplib.
importer smtplib
Initialisation d'un objet SMTP
Désormais, 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. Donc, 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. Voici où le compte Gmail que vous avez créé précédemment est utile.
emailSender = "[email protected]"
myThroaway = "[email protected]"
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!
Rédaction du message
Sans doute la partie la plus simple du processus, vous devez ici saisir des valeurs que vous ajouteriez normalement lors de la rédaction d'un nouvel e-mail. Ceci comprend:
- Détails de l'expéditeur
- Détails du destinataire
- Sujet
- Corps du message
Ces champs sont placés entre guillemets triples et sont délimités comme suit:
newEmail = De: De la personne
À: À personne
Objet: Test des e-mails
Ceci est le corps de l'e-mail.
Envoi de l'e-mail
Enfin, nous pouvons utiliser la commande sendmail pour envoyer le courrier de votre serveur SMTP vers le serveur du destinataire.
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
Maintenant, il n’ya qu’une dernière étape: réorganiser le code pour éviter tout blocage prévisible du programme.
Dépannage de votre programme de messagerie Python
Parfois, votre serveur SMTP peut ne pas établir de 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 ces possibilités, vous pouvez utiliser un essayer-sauf bloquez et placez les instructions sujettes aux erreurs dans le essayer bloquer. L'ensemble de votre programme, ainsi que le bloc try-except, devrait ressembler à ceci:
importer smtplib
emailSender = "[email protected]"
myThroaway = "[email protected]"
emailRecipients = [myThroaway]
newEmail = De: De la personne
À: À personne
Objet: Test des e-mails
Ceci est le corps de l'e-mail.
essayer:
smtpObj = smtplib. SMTP ("smtp.gmail.com")
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
print ("E-mail envoyé avec succès!")
sauf SMTPException:
print ("Erreur: une erreur s'est produite lors de l'envoi de votre e-mail.")
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 consiste à 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. Le SSL La bibliothèque vous permet de créer un contexte SSL sécurisé et de communiquer sur un réseau chiffré 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 emailer sécurisé.
Le code, avec toutes les modifications apportées, ressemble à ceci:
importer smtplib, ssl
smtpServer = "smtp.gmail.com"
port = 587
myEmail = "[email protected]"
mot de passe = "mon_mot de passe"
#email et mot de passe peuvent également être des champs de saisie utilisateur
context = ssl.create_default_context ()
newEmail = De: De la personne
À: À personne
Objet: Test des e-mails
Ceci est le corps de l'e-mail.
essayer:
serveur = smtplib. SMTP (smtpServer, port)
server.starttls (contexte = contexte)
server.login (newEmail, mot de passe)
sauf exception comme e:
print ("l'e-mail n'a pas pu être envoyé.")
finalement:
serveur.quit ()
Comme précédemment, vous devez créer et utiliser l'instance SMTP dans un bloc try-except afin d'éviter tout blocage brutal du programme.
Ce que vous pouvez faire avec ce script Python
Maintenant que vous avez acquis la compétence impressionnante et étonnamment utile d'automatisation des 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 son utilisation sur votre site Web personnel pour envoyer des e-mails de confirmation automatisés à son utilisation pour envoyer des cartes de Noël par e-mail ou des invitations à votre famille et à vos amis, les utilisations de ce petit script Python ne sont limitées que par les vôtres la créativité.
En outre, ce n'est qu'une des nombreuses choses impressionnantes que vous pouvez faire avec Python. Avec sa prise en charge omniprésente pour les 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!
Améliorez vos compétences en programmation et en développement Web sur Python, l'intelligence artificielle, Keras, PyTorch, etc.
- Programmation
- Gmail
- Conseils par e-mail
- Python
- Automatisation des tâches
Yash est un étudiant en informatique en herbe qui aime construire des choses et écrire sur tout ce qui concerne la technologie. Pendant son temps libre, il aime jouer à Squash, lire une copie du dernier Murakami et chasser les dragons dans Skyrim.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!
Un pas de plus…!
Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.