Linting 2

merge-requests/22/merge
glevy 2025-06-28 19:34:01 +02:00 committed by bleizi
parent 0822e5fd43
commit d6bb04c6da
1 changed files with 25 additions and 10 deletions

View File

@ -9,7 +9,9 @@ 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 à tous les adhérents.
Il se trouve [ici](https://gitlab.crans.org/nounous/scripts/-/blob/master/mail/mail_all.py) (en principe cloné dans `/usr/scripts/mail`).
Il se trouve
[ici](https://gitlab.crans.org/nounous/scripts/-/blob/master/mail/mail_all.py)
(en principe cloné dans `/usr/scripts/mail`).
Ce script utilise le moteur de templates Jinja pour personnaliser les mails
et nécessite une instance de Re2o.
@ -17,7 +19,7 @@ et nécessite une instance de Re2o.
Pour le faire fonctionner, c'est assez simple.
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)
@ -54,7 +56,7 @@ Pour cela rien de plus simple, il te suffit de remplir les destinaires
dans un fichier, une ligne par destinataire et de le donner comme option à `-f`.
Comme le précise le menu d'aide, trois formats sont disponibles. Par exemple :
```
```bash
Prénom;Nom;<pseudo>@crans.org
```
@ -63,7 +65,7 @@ vont être fournis au template du mail.
Il te suffit de rajouter un JSON contenant dans ses clés
les nouvelles variables, cf l'exemple ci-dessous.
```
```bash
Prénom;Nom;<pseudo>@crans.org;{"pseudo":"<pseudo>","humeur":"bonne"}
```
@ -93,7 +95,8 @@ avec l'option `-a`.
Il est nécessaire de spécifier un template de mail,
via un chemin relatif au dossier courant.
L'architecture d'un dossier template ressemble à ça :
```
```bash
Dossier_Template
├── body
│   ├── en
@ -107,19 +110,25 @@ Dossier_Template
└── X-Mailer
└── 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`.
Tous les fichiers sont des templates Jinja
et ont accès aux variables définies dans mail_all.
* `Prénom` : Le prénom du destinataire, ou la chaîne vide.
* `Nom` : Le nom du destinataire, ou la chaîne vide.
* `To` : L'email du destinatire.
* `mailer` : L'user agent. Par défaut il vaut "Un MA du crans a personalisé ce message à la main pour toi"
* `mailer` : L'user agent.
Par défaut il vaut "Un MA du Crans a personalisé ce message
à la main pour toi"
* Toute autre variable que tu aurais envie de définir.
Voici un peu plus de détails sur ce dossier de templates.
Voici un peu plus de détails
sur ce dossier de templates.
* A priori, `X-mailer` n'est pas à modifier et devrait juste contenir un fichier `fr` contenant `{{mailer}}`.
* A priori, `X-mailer` n'est pas à modifier et devrait juste
contenir un fichier `fr` contenant `{{mailer}}`.
* 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, comme tous les autres fichiers Jinja.
@ -142,10 +151,16 @@ Puis lance le script avec les options suivantes.
./mail_all.py -s 'bureau@crans.org' -A -t AGO_2020 -p
```
* 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 `-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` permet de dire que je veux envoyer ce mail à tous les adhérents.
* L'option `-t` est pour préciser le template du mail.
* L'option `-p` me permet de faire une prévisualisation et de simuler l'envoi des mails. Cette option est de toute façon nécessaire (sauf si tu forces l'envoi du mail).
* L'option `-p` me permet de faire une prévisualisation
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:
Les consignes sont répétées pour une bonne raison.