Il est possible d’envoyer des courriels massifs personnalisés avec un script python.
Pour ce faire, on inclut tous les éléments de personnalisation dans un fichier csv, ensuite, on itère sur chaque ligne de ce fichier pour produire un courriel et l’envoyer.
Le fichier CSV peut, par exemple, contenir les colonnes suivantes:
- Courriel
- Prénom
- Nom
On utilise les librairies Python suivantes:
import csv
import time
import smtplib
import email.utils
from email.mime.text import MIMEText
Soit chemin_csv une variable qui contient le chemin du fichier CSV, on produit une liste de dictionnaires comme suit:
with open(chemin_csv, 'r') as csvfile:
csvreader = csv.DictReader(csvfile, delimiter=',')
for row in csvreader:
# Code pour chaque courriel ici
On définit ensuite les variables suivantes:
sujet_courriel =
nom_expediteur =
courriel_expediteur =
serveur_smtp =
port_smtp =
Pour produire un courriel, on crée un objet MIMEText contenant le corps du message
msg = MIMEText("""
Bonjour {p} {n},
Voici un courriel personnalisé
""".format(p=row['Prénom'],n=row['Nom'])
On ajoute ensuite l’expéditeur, le destinataire et l’objet du courriel
msg['To'] = email.utils.formataddr(("{p} {n}".format(p=row['Prénom'],n=row['Nom']), row['Courriel']))
msg['From'] = email.utils.formataddr((nom_expediteur, courriel_expediteur))
msg['Subject'] = sujet_courriel
On peut maintenant expédier le courriel. Il faut cependant avoir accès à un serveur SMTP
try:
smtpObj = smtplib.SMTP_SSL(serveur_smtp,port_smtp)
smtpObj.set_debuglevel(True)
smtpObj.login("","")
smtpObj.sendmail(courriel_expediteur, [row['Courriel']], msg.as_string())
print("Courriel envoyé avec succès")
except smtplib.SMTPException:
print("Erreur dans l'envoi du courriel")
Enfin, afin d’éviter d’être identifié comme spam, il est recommandé de mettre un délai entre les envois de courriels
time.sleep(5)