Petit script pour envoyer plein de mails
Find a file
2026-10-24 00:57:58 +02:00
.gitignore francisation, plus de logs, readme plus détaillé/simple/complet 2026-10-17 01:19:12 +02:00
main.py corection du type de l’option wait ; mode dry ; meilleure validation des adresses 2026-10-24 00:57:58 +02:00
main_complexe_expacement.py version bien plus complexe mais qui espace bien les adresses d’un même domaine dans la liste des envoi 2026-10-23 01:59:43 +02:00
readme.md plus de doc 2026-10-17 17:31:02 +02:00

Comment envoyer des mails en masse (pour les nuls)

Ceci est un protoype, allez-y prudement.

Preparation

  • Télécharger le fichier main.py de ce dépôt
  • Créer un fichier nommé contenu.txt qui contient votre mail au format texte (le contenu texte doit contenir les mêmes information que le html qui suit. Il va servir de remplacement pour les clients mails qui ne supportent pas le html)
  • Créer un fichier nommé contenu.html qui contient votre mail au format html N.B. : Il est possible de convertir un fichier .odt en .html avec LibreOffice
  • Créer un fichier nommé adresses.txt et y mettre les adresses des destinataires (une par ligne, les doublons seront évités automatiquement)
  • Créer un fichier texte nommé .env (pas de nom, juste une extention) qui contient les lignes suivantes (à adapter à votre serveur SMTP)
export SMTP_SERVEUR="serveurmail.fr"
export SMTP_PORT="465"
export ADRESSE_EXP="me@myhost.com"
export SMTP_IDENTIFIANT="souvent c’est l’adresse d’expédition"
export SMTP_SSL="oui"
export SMTP_STARTTLS="non"

Note : ces informations se trouvent sur votre webmail ou autres outils web de votre fournisseur de mail. Il faut chercher « paramètres de configuration de clients mails », « thunderbird » ou « mails android »

  • Exécuter le programme (en donnant le sujet du mail en option avec -s)
source .env && python3 main.py -s 'Bonjour à toustes'
  • Le programme va demander le mot de passe SMTP. Il faut l’entrer (attention, par sécurité rien ne s’affiche lors de la saisie).
  • Le programme va créer un fichier adresses_ok.txt qui va se remplir (pas forcement en temps réel) des adresses auxquelles le message est envoyé. Vous pouvez donc interrompre le programme et le reprendre sans risque d’envoyer des doublons (peut-être un doublon en fonction du moment ou le programme est coupé)

Pour aller plus loin

  • Cette commande vous montre tous les paramètres que l’on peut choisir au lancement du programe :
python3 main.py --help

(Optionel, avancé) Use sops to encrypt your .env file

The first time, create the key

age-keygen | age -p > ~/.config/sops/age/massmail.age
# Store the password in protected place

Load private key in this shell sesssion env

set -a ; SOPS_AGE_KEY=$(age -d ~/.config/sops/age/massmail.age) ; set +a

Edit the file to set the right variables

sops edit .env

Run the program with:

sops exec-env .env "python3 main.py -s 'Bonjour à toustes'"

Note : Est-ce que c’est mieux de mettre la ligne SOPS avant chaque commande ? Je ne sais pas…