Envoyez plusieurs mails avec Python et la librairie smtplib

python mail

Dans le code qui va suivre, nous allons voir comment envoyer des courriels en utilisant un script Python. Nous allons utiliser les dictionnaires afin de personnaliser chaque mail pour chaque adresse.

import smtplib
import time
from email.message import EmailMessage

# Dictionnaire des adresses électroniques et des messages à envoyer
emails = {
    'john@example.com': 'Bonjour John, comment vas-tu ?',
    'sarah@example.com': 'Salut Sarah, comment ça va ?',
    'bill@example.com': 'Bonjour Bill, comment vas-tu ?'
}

# Connexion au serveur SMTP
server = smtplib.SMTP('smtp.example.com')
server.login('username', 'password')

# Envoi des emails
for email, message in emails.items():
    # Création du message
    msg = EmailMessage()
    msg.set_content(message)
    msg['Subject'] = 'Objet de votre email'
    msg['From'] = 'sender@example.com'
    msg['To'] = email

    # Envoi de l'email
    server.send_message(msg)
    time.sleep(20)  # Ajout d'un délai de 20 secondes

# Fermeture de la connexion au serveur
server.quit()

Ce programme importe la bibliothèque smtplib qui fournit des fonctions pour envoyer des emails à travers un serveur SMTP (Simple Mail Transfer Protocol). Le dictionnaire emails définit les adresses électroniques et les messages à envoyer.

Le programme se connecte au serveur SMTP en utilisant la fonction SMTP de smtplib, puis se connecte en utilisant le nom d’utilisateur et le mot de passe fournis. Ensuite, il utilise une boucle for pour parcourir le dictionnaire emails et envoyer chaque email en utilisant la fonction sendmail de smtplib. Enfin, il ferme la connexion au serveur en utilisant la fonction quit.

Il y a quelques points à prendre en compte lors de l’utilisation de ce programme :

  • Vous devez remplacer smtp.example.com par l’adresse du serveur SMTP auquel vous souhaitez vous connecter.
  • Vous devez remplacer username et password par votre nom d’utilisateur et votre mot de passe de connexion au serveur SMTP.
  • Vous devez remplacer sender@example.com par l’adresse électronique à partir de laquelle vous souhaitez envoyer les emails.

La fonction sleep prend en argument le nombre de secondes à attendre avant de continuer l’exécution du programme. Dans ce cas, nous avons ajouté un appel à 20sleep() après chaque envoi d’email, ce qui ajoute un délai de 20 secondes avant de passer à l’envoi suivant.

Pour ajouter un objet à un email que vous envoyez à l’aide de la bibliothèque smtplib de Python, vous devez utiliser la méthode sendmail de manière un peu différente. Au lieu de simplement passer les destinataires et le message en tant qu’arguments, vous devez créer un message en utilisant la classe EmailMessage de la bibliothèque email de Python, puis utiliser cet objet pour envoyer l’email.