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,
|
tout en permettant de les personnaliser,
|
||||||
des anciens membres du Crans ont écrit un script pour
|
des anciens membres du Crans ont écrit un script pour
|
||||||
envoyer des mails à l'ensemble des adhérent·e·s.
|
envoyer des mails à l'ensemble des adhérent·e·s.
|
||||||
Il se trouve
|
On trouve le script (pour pouvoir l'exécuter) et les templates
|
||||||
[ici](https://gitlab.crans.org/nounous/scripts/-/blob/master/mail/mail_all.py)
|
sur la VM Re2o (`re2o.adm.crans.org`) dans `/usr/scripts/mail`.
|
||||||
(en principe cloné dans `/usr/scripts/mail`).
|
|
||||||
|
|
||||||
Ce script utilise le moteur de templates Jinja pour personnaliser les mails
|
Ce script utilise le moteur de templates Jinja pour personnaliser les mails
|
||||||
et nécessite une instance de Re2o.
|
et nécessite une instance de Re2o.
|
||||||
|
@ -22,31 +21,28 @@ Tout d'abord, allons lire le menu d'aide.
|
||||||
```bash
|
```bash
|
||||||
---> ./mail_all.py --help
|
---> ./mail_all.py --help
|
||||||
usage: mail_all.py [-h] [-f RECIPIENTFILE] [-t TEMPLATE] [-s SENDER] [-a] [-A]
|
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.
|
Mail all générique. Prend un template en argument.
|
||||||
|
|
||||||
optional arguments:
|
optional arguments:
|
||||||
-h, --help show this help message and exit
|
-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
|
-t TEMPLATE, --template TEMPLATE
|
||||||
Un template de mail. Fournir le chemin du dossier
|
Un template de mail. Fournir le chemin du dossier
|
||||||
principal du mail, relatif à
|
principal du mail.
|
||||||
/usr/scripts/mail/template/
|
|
||||||
-s SENDER, --sender SENDER
|
-s SENDER, --sender SENDER
|
||||||
Spécifier un expéditeur particulier. Par défaut
|
Spécifier un expéditeur particulier. Par défaut
|
||||||
respbats@crans.org
|
respbats@crans.org.
|
||||||
--doit Lance effectivement le mail
|
--doit Lance effectivement le mail.
|
||||||
-p, --prev Prévisualise le mail à envoyer
|
-f RECIPIENTFILE, --recipientfile RECIPIENTFILE
|
||||||
|
Un fichier contenant un destinataire par ligne au
|
||||||
Filtres:
|
format `Prenom;Nom;Email;Params`, avec params au
|
||||||
-a, --allaccess Envoie un mail à toutes les personnes bénéficiant
|
format json.
|
||||||
d'une connexion valide.
|
--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.
|
-A, --alladh Envoie un mail à tou·te·s les adhérent·e·s.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Envoyer un mail à une liste prédéfinie
|
## 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`,
|
Ce format permet de récupérer le prénom dans la variable `Prénom`,
|
||||||
le nom dans `Nom` et l'email dans `To`.
|
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
|
Si un autre format est utilisé qui ne permet pas de récupérer le nom
|
||||||
ou le prénom du destinataire,
|
ou le prénom du destinataire,
|
||||||
mais que l'email est bien accessible, le script fonctionnera quand même.
|
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
|
## 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.
|
Pour envoyer un mail à l'intégralité des adhérent·e·s
|
||||||
Soit tu récupères toi même cette liste et la colle dans un fichier de destinataires,
|
et ancien·ne·s adhérent·e·s,
|
||||||
soit tu utilises l'option `-A`.
|
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
|
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
|
## Template de mail
|
||||||
|
|
||||||
|
@ -133,8 +135,9 @@ sur ce dossier de templates.
|
||||||
* De même, `To` ne devrait pas être modifié et contient `{{To}}`.
|
* 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.
|
* `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.
|
* `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.
|
comme tous les autres fichiers Jinja.
|
||||||
|
Tu peux par exemple mettre le pseudo pour trier les bounces.
|
||||||
* `body` est le dossier le plus important
|
* `body` est le dossier le plus important
|
||||||
C'est lui le coeur du mail. Il contient
|
C'est lui le coeur du mail. Il contient
|
||||||
deux fichiers `en` et `fr`, qui
|
deux fichiers `en` et `fr`, qui
|
||||||
|
@ -155,42 +158,49 @@ dans le dossier `template`.
|
||||||
Puis lance le script avec les options suivantes.
|
Puis lance le script avec les options suivantes.
|
||||||
|
|
||||||
```bash
|
```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
|
* L'option `-s` permet de préciser une adresse qui va
|
||||||
recevoir les bounces.
|
recevoir les bounces.
|
||||||
Tu veux ici une mailing list privée,
|
Tu veux ici une mailing list privée,
|
||||||
comme `respbats` (par défaut) ou `bureau`.
|
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
|
* L'option `-t` est pour préciser le
|
||||||
template du mail.
|
template du mail.
|
||||||
* L'option `-p` permet de
|
* Sans autre option, le script va
|
||||||
prévisualiser
|
permettre de simuler l'envoi des mails.
|
||||||
et de simuler l'envoi des mails.
|
|
||||||
Cette option est de toute façon nécessaire
|
|
||||||
(sauf si tu forces l'envoi du mail).
|
|
||||||
|
|
||||||
:warning:
|
:warning:
|
||||||
Les consignes sont répétées pour une bonne raison.
|
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
|
Il est fortement recommandé de l'envoyer d'abord à une liste
|
||||||
restreinte de cobayes presque volontaires
|
restreinte de cobayes presque volontaires
|
||||||
(à commencer par toi) pour vérifier que le mail rend bien.
|
(à commencer par toi) pour vérifier que le mail rend bien.
|
||||||
|
|
||||||
:warning:
|
: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 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é
|
Une fois que le mail est satisfaisant et que tu as bien vérifié
|
||||||
la liste des destinataires concernés
|
la liste des destinataires concernés
|
||||||
(tous ceux que tu visais et seulement eux), tu peux utiliser l'option `--doit`.
|
(tous ceux que tu visais et seulement eux), tu peux utiliser l'option `--doit`.
|
||||||
|
|
||||||
```bash
|
```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