Envoyer des mails massifs sans blacklist
À certaines occasions, on peut vouloir envoyer un message à tout·es les utilisateur·ices de Mattermost. Tout envoyer d’un seul coup, c’est redflag pour les gros fournisseurs et direction la blacklist.
Rate limiting
Lors d’un tel envoi, une des premières choses est de s’assurer que Postfix, notre MTA, ne va pas envoyer trop de mails d’un coup.
Lien:
Google conseille fortement d’augmenter progressivement la fréquence d’envoi et de ne pas balancer un burst.
Pour ce faire, on paramètre Postfix pour imposer une limite absolu sur l’envoi de message par seconde au même domaine. Cette configuration a été faite dans ce commit, et on peut vérifier qu’elle est en place depuis le conteneur mail :
- snippet.bash
$ docker exec -it pica-mail-mta bash root@99bcd7919bc8:/# postconf default_destination_rate_delay default_destination_rate_delay = 1s
Attention:
Le paramètre default_destination_rate_delay
a pour effet de créer une file d’attente, délayant la réception des messages de ré-initialisation de mot de passe ou de confirmation d’adresse email. Dans de tels cas, il peut être pertinent de le supprimer jusqu’au prochain envoi de mail. On peut le faire dynamiquement et temporairement depuis le conteneur, comme suit :
- snippet.bash
postconf -e "default_destination_rate_delay = 0"
Le header List-Unsubscribe
Lien:
La RFC 2369 standardise ce header.
Il permet d’indiquer une URL ou une adresse mail permettant de se désabonner d’une liste de diffusion. Il est particulièrement apprécié des fournisseurs mail, qui l’utilisent parfois (à l’instar de Gmail) pour afficher un bouton « Se désabonner ».
Par flemme de mettre en place un domaine spécifique sur lequel envoyer une requête POST
, tel que fait usuellement, on peut indiquer une URL mailto:picasoft@assos.utc.fr?subject=désabonnement
qui ouvrira un client mail pré-rempli.
A Savoir:
Pour ajouter un header dans Thunderbird, on peut suivre ce tutoriel.
Tester son mail avant envoi
Lien:
Le site mail-tester.com génère une adresse mail temporaire à laquelle on peut envoyer le mail ; la conformité SPF/DKIM/DMARC sera ainsi testée, tout comme la présence du header List-Unsubscribe
mais aussi le contenu du mail via SpamAssassin. Ce peut être l’occasion de l’améliorer.
On peut aussi tester au préalable la configuration de notre serveur mail avec ces tests: