Petit script pour envoyer plein de mails
- Python 100%
| .gitignore | ||
| main.py | ||
| main_complexe_expacement.py | ||
| readme.md | ||
Comment envoyer des mails en masse (pour les nuls)
Ceci est un protoype, allez-y prudement.
Preparation
- Télécharger le fichier
main.pyde ce dépôt - Créer un fichier nommé
contenu.txtqui contient votre mail au formattexte(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.htmlqui contient votre mail au formathtmlN.B. : Il est possible de convertir un fichier.odten.htmlavec LibreOffice - Créer un fichier nommé
adresses.txtet 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.txtqui 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…