Comment envoyer un e-mail avec SMTPLIB en Python ?

SMTPLIB est un module Python qui peut être utilisé pour envoyer des e-mails avec quelques lignes de code.

smtplib

Envoyer plusieurs e-mails manuellement est une tâche longue et difficile, un programmeur peut facilement automatiser cela en utilisant son langage de programmation préféré.

L’envoi d’un e-mail à partir d’une application Web ou d’un logiciel local s’exécutant sur votre ordinateur, nécessite un serveur SMTP (Simple Mail Transfer Protocol).

Python fournit le module smtplib, qui définit un objet de session client SMTP qui peut être utilisé pour envoyer des courriers à n’importe quelle machine Internet avec un serveur d’écoute SMTP.

SMTP – c’est quoi ?

Le protocole SMTP (Simple Mail Transfer Protocol) est l’équivalent informatisé de votre service postal. C’est un protocole standard pour envoyer et recevoir des e-mails sur Internet. Le processus de transfert de courrier consiste en des serveurs de messagerie et des clients qui envoient et reçoivent des e-mails.

Il s’agit simplement d’un ensemble de règles qui régissent la manière dont deux serveurs de messagerie peuvent communiquer entre eux.

Lorsque nous voulons envoyer un e-mail à une machine cible, nous (le client) devons envoyer le contenu du courrier au serveur SMTP.

SMTPLIB

SMTPLIB est une bibliothèque python qui peut être utilisée comme client SMTP tout comme GMAIL et YAHOO ou tout autre client de messagerie et peut être utilisée pour envoyer des e-mails. Nous pouvons effectuer toutes les tâches à l’aide du client SMTPLIB.

Sécuriser la connection

SSL (Secure Sockets Layer) et TLS (Transport Layer Security) sont deux protocoles que l’on peut utiliser pour crypter une connexion SMTP. L’objectif est que votre message et vos informations de connexion ne soient pas facilement accessibles par les autres.
Aussi, sachez que Gmail nécessite que vous vous connectiez au port 465 si vous utilisez SMTP_SSL().
En fait, un port est un numéro unique permettant aux ordinateurs de recevoir ou d’émettre des informations spécifiques à chaque application. Imaginez que votre ordinateur est une maison, donc les port définissent les numéros des chambres. Donc, chaque information passe par le port qui lui est associé, selon la nature de l’application.
En fait, Gmail n’autorise pas la communication via un canal non SSL ou non TLS.

Le code pour envoyer un email avec Python

Tout e-mail utilisant SMTP doit avoir les composants suivants :

  • L’adresse de l’expéditeur
  • L’adresse du destinataire
  • Un sujet (facultatif)
  • Le corps du courrier

J’utiliserai un compte GMAIL en tant qu’expéditeur, ainsi que la console Python. Pour commencer, nous devons autoriser GMAIL à accéder à des applications moins sécurisées.

Je vous conseille de créer un nouveau compte Gmail, qui sera utilisé uniquement pour le développement.

Alors connectez-vous à votre compte GMAIL, puis accédez aux paramètres du compte. Dans le menu, accédez à sécurité.
Changez l’accès aux applications moins sécurisées à activé.

Voici le code, remplacez les informations de connexion par les vôtre.

import smtplib

server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login("votre_email", "mot_de_passe")
server.sendmail(
  "expediteur@address.com",
  "destinataire@address.com",   
  "subject: test \nce message vient de python")
server.quit()

Explication du code

Pour commencer, sachez que le protocole SMTP est un protocole de communication entre un client SMTP et un serveur SMTP.
Le client SMTP est smtp.gmail.com, qui envoie des e-mails à n’importe quelle machine exécutant un serveur SMTP.
Cette ligne de code permet à notre application de communiquer avec ce serveur à travers le port 465.

server = smtplib.SMTP_SSL('smtp.gmail.com', 465)

Nous avons créé un objet client SMTP stocké dans la variable serveur.

Donc, nous avons une connexion à un serveur SMTP qui réside dans smtp.gmail.com et écoute via le port 465 sur un canal SSL crypté et sécurisé.

Notre objet smtp doit s’authentifier auprès du serveur de messagerie, c’est logique.

server.login("votre_email", "mot_de_passe")

Maintenant, exécutez le code, puis vérifiez votre boite de réception (puisque vous allez envoyer l’e-mail à vous-même).

La méthode sendmail demande au serveur SMTP d’envoyer un e-mail. Elle prend en compte l’adresse e-mail source, l’adresse e-mail de destination et le contenu du message électronique à envoyer.

Puis, dans la dernière ligne, nous avons mis fin à la connexion entre le client et le serveur SMTP.

Comment envoyer un e-mail avec SMTPLIB en Python ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Retour en haut