Inclusivation

merge-requests/22/merge
glevy 2025-06-28 22:57:16 +02:00 committed by bleizi
parent f6beb3b27d
commit 9f68f9f247
1 changed files with 24 additions and 25 deletions

View File

@ -1,4 +1,4 @@
# Envoyer un mail à tous les adhérents # Envoyer un mail à tous les adhérent·e·s
:warning: Avant de lire ce qui suit, vérifie auprès de plusieurs personnes, en :warning: Avant de lire ce qui suit, vérifie auprès de plusieurs personnes, en
particulier auprès du CA et du ou de la présidence du Cr@ns particulier auprès du CA et du ou de la présidence du Cr@ns
@ -8,7 +8,7 @@ Afin de contourner les mesures antispam du Crans pour cet usage légitime
et aussi afin de t'épargner l'envoi manuel de centaines de mails 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 à tous les adhérents. envoyer des mails à tous les adhérent·e·s.
Il se trouve Il se trouve
[ici](https://gitlab.crans.org/nounous/scripts/-/blob/master/mail/mail_all.py) [ici](https://gitlab.crans.org/nounous/scripts/-/blob/master/mail/mail_all.py)
(en principe cloné dans `/usr/scripts/mail`). (en principe cloné dans `/usr/scripts/mail`).
@ -46,7 +46,7 @@ optional arguments:
Filtres: Filtres:
-a, --allaccess Envoie un mail à toutes les personnes bénéficiant -a, --allaccess Envoie un mail à toutes les personnes bénéficiant
d'une connexion valide. d'une connexion valide.
-A, --alladh Envoie un mail à tous les adhérents. -A, --alladh Envoie un mail à tous les adhérent·e·s.
``` ```
## Envoyer un mail à une liste prédéfinie ## Envoyer un mail à une liste prédéfinie
@ -82,19 +82,19 @@ 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.
Attention tout de même à avoir un mail cohérent. Attention tout de même à avoir un mail cohérent.
## Envoyer un mail à tous les adhérents ## Envoyer un mail à tous les adhérent·e·s
Pour envoyer un mail à tous les adhérents c'est très simple. Pour envoyer un mail à tous les 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 récupères toi même cette liste et la colle dans un fichier de destinataires,
soit tu utilises l'option `-A`. soit tu utilises l'option `-A`.
De même tu peux envoyer un mail à tous les adhérents à jour de cotisation De même tu peux envoyer un mail à tous les adhérent·e·s à jour de cotisation
avec l'option `-a`. avec l'option `-a`.
## Template de mail ## Template de mail
Il est nécessaire de spécifier un template de mail, Il est nécessaire de spécifier un template de mail,
via un chemin relatif au dossier courant. via un chemin relatif au dossier courant.
L'architecture d'un dossier template ressemble à ça : L'architecture d'un dossier template ressemble à ceci.
```bash ```bash
Dossier_Template Dossier_Template
@ -114,14 +114,14 @@ Dossier_Template
Dans le sous-dossier body, tu peux spécifier deux langues : `en` et `fr`. Dans le sous-dossier body, tu peux spécifier deux langues : `en` et `fr`.
Pour rajouter des langues, il faut changer un peu le script coeur, `mail.py`. Pour rajouter des langues, il faut changer un peu le script coeur, `mail.py`.
Tous les fichiers sont des templates Jinja Tous les fichiers sont des templates Jinja
et ont accès aux variables définies dans mail_all. et ont accès aux variables définies dans `mail_all`.
* `Prénom` : Le prénom du destinataire, ou la chaîne vide. * `Prénom` : Le prénom du ou de la destinataire (ou la chaîne vide).
* `Nom` : Le nom du destinataire, ou la chaîne vide. * `Nom` : Le nom du ou de la destinataire (ou la chaîne vide).
* `To` : L'email du destinatire. * `To` : L'email du ou de la destinatire.
* `mailer` : L'user agent. * `mailer` : L'user agent.
Par défaut il vaut "Un MA du Crans a Par défaut il vaut "Les membres du Crans
personalisé ce message à la main pour toi" ont personnalisé ce message pour toi"
* Toute autre variable que tu aurais envie de définir. * Toute autre variable que tu aurais envie de définir.
Voici un peu plus de détails Voici un peu plus de détails
@ -131,8 +131,8 @@ sur ce dossier de templates.
et devrait juste et devrait juste
contenir un fichier `fr` contenant `{{mailer}}`. contenir un fichier `fr` contenant `{{mailer}}`.
* 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.
* `body` est le dossier le plus important * `body` est le dossier le plus important
@ -148,9 +148,9 @@ Ce sont là aussi des template Jinja, personalisables
## Exemple ## Exemple
Pour envoyer un mail_all à tous les adhérents pour les prévenir Pour envoyer un `mail_all` à tous les adhérents pour les prévenir
de la tenue de l'assemblée générale, de la tenue de l'assemblée générale,
crée un dossier `AGO_2026` avec l'architecture précédente, dans le dossier `template`. crée un dossier `AGO_$année` avec l'architecture précédente, dans le dossier `template`.
Puis lance le script avec les options suivantes. Puis lance le script avec les options suivantes.
```bash ```bash
@ -161,12 +161,11 @@ Puis lance le script avec les options suivantes.
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` permet de dire que je veux * L'option `-A` active l'envoi du mail à l'ensemble des adhérent·e·s.
envoyer ce mail à tous les adhérents.
* 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` me permet de faire une * L'option `-p` permet de
prévisualisation prévisualiser
et de simuler l'envoi des mails. et de simuler l'envoi des mails.
Cette option est de toute façon nécessaire Cette option est de toute façon nécessaire
(sauf si tu forces l'envoi du mail). (sauf si tu forces l'envoi du mail).
@ -179,13 +178,13 @@ 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` pour que son exécution se passe bien jusqu'au bout.
Le script va faire tous les envois un par un pour le millier d'adhérents, c'est long Le script va faire la petite centaine d'envois un par un,
et le risque d'interruption au milieu n'est pas négligeable. le risque d'interruption au milieu n'est 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, 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' -A -t AGO_2020 --doit