Màj suite aux remarques de bleizi
parent
f28988a83a
commit
6f98ceeeee
|
@ -9,9 +9,8 @@ et aussi afin de t'épargner l'envoi manuel de centaines de mails
|
|||
tout en permettant de les personnaliser,
|
||||
des anciens membres du Crans ont écrit un script pour
|
||||
envoyer des mails à l'ensemble des adhérent·e·s.
|
||||
Il se trouve
|
||||
[ici](https://gitlab.crans.org/nounous/scripts/-/blob/master/mail/mail_all.py)
|
||||
(en principe cloné dans `/usr/scripts/mail`).
|
||||
On trouve le script (pour pouvoir l'exécuter) et les templates
|
||||
sur la VM Re2o (`re2o.adm.crans.org`) dans `/usr/scripts/mail`.
|
||||
|
||||
Ce script utilise le moteur de templates Jinja pour personnaliser les mails
|
||||
et nécessite une instance de Re2o.
|
||||
|
@ -22,31 +21,28 @@ Tout d'abord, allons lire le menu d'aide.
|
|||
```bash
|
||||
---> ./mail_all.py --help
|
||||
usage: mail_all.py [-h] [-f RECIPIENTFILE] [-t TEMPLATE] [-s SENDER] [-a] [-A]
|
||||
(--doit | -p)
|
||||
[--doit]
|
||||
|
||||
Mail all générique. Prend un template en argument.
|
||||
|
||||
optional arguments:
|
||||
-h, --help show this help message and exit
|
||||
-f RECIPIENTFILE, --recipientfile RECIPIENTFILE
|
||||
Un fichier contenant un destinataire par ligne. Les
|
||||
formats acceptés sont : `Prenom;Nom;Email`,
|
||||
`Prenom;Email`, ou tout simplement `Email`. Override
|
||||
tous les filtres.
|
||||
-t TEMPLATE, --template TEMPLATE
|
||||
Un template de mail. Fournir le chemin du dossier
|
||||
principal du mail, relatif à
|
||||
/usr/scripts/mail/template/
|
||||
principal du mail.
|
||||
-s SENDER, --sender SENDER
|
||||
Spécifier un expéditeur particulier. Par défaut
|
||||
respbats@crans.org
|
||||
--doit Lance effectivement le mail
|
||||
-p, --prev Prévisualise le mail à envoyer
|
||||
|
||||
Filtres:
|
||||
-a, --allaccess Envoie un mail à toutes les personnes bénéficiant
|
||||
d'une connexion valide.
|
||||
respbats@crans.org.
|
||||
--doit Lance effectivement le mail.
|
||||
-f RECIPIENTFILE, --recipientfile RECIPIENTFILE
|
||||
Un fichier contenant un destinataire par ligne au
|
||||
format `Prenom;Nom;Email;Params`, avec params au
|
||||
format json.
|
||||
--to {adherent,access,club,everyone}
|
||||
Sélectionne les destinataires du mails parmi un filtre
|
||||
prédéfini.
|
||||
-A, --alladh Envoie un mail à tou·te·s les adhérent·e·s.
|
||||
|
||||
```
|
||||
|
||||
## Envoyer un mail à une liste prédéfinie
|
||||
|
@ -76,7 +72,9 @@ dans le sujet du mail, utile pour trier les bounces.
|
|||
|
||||
Ce format permet de récupérer le prénom dans la variable `Prénom`,
|
||||
le nom dans `Nom` et l'email dans `To`.
|
||||
Ces variables sont utilisables dans le remplissage du template.
|
||||
Ces variables sont utilisables dans le remplissage du template,
|
||||
en les insérant entre double accolades.
|
||||
Par exemple, {{prenom}}.
|
||||
Si un autre format est utilisé qui ne permet pas de récupérer le nom
|
||||
ou le prénom du destinataire,
|
||||
mais que l'email est bien accessible, le script fonctionnera quand même.
|
||||
|
@ -84,11 +82,15 @@ Attention tout de même à avoir un mail cohérent.
|
|||
|
||||
## Envoyer un mail général aux adhérent·e·s
|
||||
|
||||
Pour envoyer un mail à l'intégralité des adhérent·e·s c'est très simple.
|
||||
Soit tu récupères toi même cette liste et la colle dans un fichier de destinataires,
|
||||
soit tu utilises l'option `-A`.
|
||||
Pour envoyer un mail à l'intégralité des adhérent·e·s
|
||||
et ancien·ne·s adhérent·e·s,
|
||||
utile si une coupure des services est prévue,
|
||||
c'est très simple.
|
||||
Soit tu récupères toi même cette liste et la colles
|
||||
dans un fichier de destinataires,
|
||||
soit tu utilises l'option `--to everyone`.
|
||||
De même tu peux envoyer un mail aux adhérent·e·s à jour de cotisation
|
||||
avec l'option `-a`.
|
||||
avec l'option `--to adherent`.
|
||||
|
||||
## Template de mail
|
||||
|
||||
|
@ -133,8 +135,9 @@ sur ce dossier de templates.
|
|||
* De même, `To` ne devrait pas être modifié et contient `{{To}}`.
|
||||
* `From` contient le champ `From` du mail à envoyer. Tu peux mettre ce que tu veux.
|
||||
* `Subject/fr` est, comme son nom l'indique, le fichier définissant le sujet du mail.
|
||||
Il est aussi personnalisable à l'aide de variables,
|
||||
Il est aussi personnalisable à l'aide de variables
|
||||
comme tous les autres fichiers Jinja.
|
||||
Tu peux par exemple mettre le pseudo pour trier les bounces.
|
||||
* `body` est le dossier le plus important
|
||||
C'est lui le coeur du mail. Il contient
|
||||
deux fichiers `en` et `fr`, qui
|
||||
|
@ -155,42 +158,49 @@ dans le dossier `template`.
|
|||
Puis lance le script avec les options suivantes.
|
||||
|
||||
```bash
|
||||
./mail_all.py -s 'bureau@crans.org' -A -t AGO_2020 -p
|
||||
./mail_all.py -s 'bureau@crans.org' --to adherent -t AGO_$année
|
||||
```
|
||||
|
||||
* L'option `-s` permet de préciser une adresse qui va
|
||||
recevoir les bounces.
|
||||
Tu veux ici une mailing list privée,
|
||||
comme `respbats` (par défaut) ou `bureau`.
|
||||
* L'option `-A` active l'envoi du mail à l'ensemble des adhérent·e·s.
|
||||
* L'option `--to adherent` active l'envoi du mail à l'ensemble des adhérent·e·s
|
||||
à jour de cotisation.
|
||||
* L'option `-t` est pour préciser le
|
||||
template du mail.
|
||||
* L'option `-p` permet de
|
||||
prévisualiser
|
||||
et de simuler l'envoi des mails.
|
||||
Cette option est de toute façon nécessaire
|
||||
(sauf si tu forces l'envoi du mail).
|
||||
* Sans autre option, le script va
|
||||
permettre de simuler l'envoi des mails.
|
||||
|
||||
:warning:
|
||||
Les consignes sont répétées pour une bonne raison.
|
||||
Prends bien le temps de lire et de faire relire le mail avant qu'il ne parte.
|
||||
Prends bien le temps de lire et de faire relire le mail
|
||||
avant qu'il ne parte.
|
||||
Vérifie, revérifie et fais re-revérifier la date, le jour,
|
||||
l'année et l'heure,
|
||||
aussi bien dans la version française qu'anglaise,
|
||||
dans le corps du mail comme dans son sujet.
|
||||
Il est fortement recommandé de l'envoyer d'abord à une liste
|
||||
restreinte de cobayes presque volontaires
|
||||
(à commencer par toi) pour vérifier que le mail rend bien.
|
||||
|
||||
:warning:
|
||||
Lance le script dans un `screen` pour que son exécution se passe bien jusqu'au bout.
|
||||
Lance le script dans un `screen` ou un `tmux` pour qu'il s'exécute
|
||||
sans erreur jusqu'au bout.
|
||||
Le script va faire la petite centaine d'envois un par un,
|
||||
le risque d'interruption au milieu n'est jamais négligeable.
|
||||
avec un délai de quelques secondes entre chaque envoi afin de
|
||||
ne pas être pris pour un serveur de spam.
|
||||
Au total, il faut prévoir plusieurs heures pour l'ensemble des envois,
|
||||
le risque d'interruption au milieu n'est donc jamais négligeable.
|
||||
|
||||
Une fois que le mail est satisfaisant et que tu as bien vérifié
|
||||
la liste des destinataires concernés
|
||||
(tous ceux que tu visais et seulement eux), tu peux utiliser l'option `--doit`.
|
||||
|
||||
```bash
|
||||
./mail_all.py -s 'bureau@crans.org' -A -t AGO_2020 --doit
|
||||
./mail_all.py -s 'bureau@crans.org' --to adherent -t AGO_$annee --doit
|
||||
```
|
||||
|
||||
Le mail_all part alors vivre sa vie de mail_all.
|
||||
Le `mail_all` part alors vivre sa vie de `mail_all`.
|
||||
|
||||
_Documentation très largement reprise de contributions du Wiki._
|
||||
_Documentation très largement reprise de contributions du Wiki, avec quelques mises à jour par bleizi._
|
||||
|
|
Loading…
Reference in New Issue