Envoyer une newsletter
Depuis quelques années nous nous heurtons à toutes sortes de soucis sur l’envoi de newsletter.Récemment on s’est aperçu qu’une partie de nos lettres n’étaient jamais reçues.
Les filtres SpamAssassin intégrés à la plupart des serveurs de courrier professionnels considéraient nos courriers comme spam.
Voici un petit guide de ce qu’il faut faire (ou ne pas faire) pour passer correctement les antispams.
SpamAssassin fonctionne en repérant dans un message tout ce qui lui semble “suspect” et attribue une note à chaque point relevé. Il additionne ensuite toutes ces notes pour obtenir une note globale. Si cette note globale est inférieure à la valeur maximale tolérée le mail est considéré comme HAM (validé), sinon il est considéré comme SPAM.
La note globale est paramétrable, par défaut lors de l’installation d’un filtre elle est de 5, mais pas mal d’admin réseau la descende à 4.5.
L’objectif à atteindre est de descendre en dessous des 3 (évidemment l’idéal est d’être à 0) .
Il faut garder à l’esprit que SpamAssassin permet de personnaliser les règles qu’il applique, et permet également de ré-écrire le barème de notation des tests qu’il effectue. On ne peut donc jamais être sur à 100% que les tests effectués chez nous passeront la totalité des anti-spams car on ne sait jamais quelles règles seront appliquées.
Il existe une version francisée de SpamAssassin, avec notamment tout un jeu de règles spécifiques à la france.
Pour les besoins de nos tests j’ai déployé un proxy en local (SAProxy), intégrant un filtre SpamAssassin. Comme il ralentit considérablement la réception des courriers je ne l’utilise que sur un compte de messagerie spécifique (lié au mail assassin@semiodesign.com). SAProxy utilise la dernière version actuelle de SpamAssassin (3.10) mais sans les règles françaises. On peut évidemment ajouter toutes les règles qu’on souhaite, et paramétrer la note maximale tolérée. Pour disposer d’un rapport complet sur les mails que j’envoie j’ai réglé cette note maximale sur 2.
Au final voici ce que je retiens de tous les tests que j’ai effectué afin d’envoyer une newsletter considérée comme HAM :
- le header de la lettre envoyée doit correspondre parfaitement aux spécifications de la norme MIME 1.0 (il n’existe qu’une seule version de cette norme, un peu antique). Tous les caractères spéciaux des header doivent impérativement être encodés.
Pour encoder un caractère on utilise cette structure :
“=?UTF-8?B?” . base64_encode($value) . “?=”
ATTENTION : les header ne doivent être encodés QUE s’ils contiennent des caractères spéciaux, sinon SpamAssassin note le fait qu’on utilise un encodage inutile (c’est mal !).
Pour savoir si un texte doit être encodé ou pas on peut par exemple comparer $value et utf8_encode($value).
- le titre du mail faisant partie du header doit respecter ces mêmes consignes.
- en ce qui concerne le titre du mail, SpamAssassin effectue un ratio nombre de mots / espace. Si ce titre est composé d’un seul mot par exemple SpamAssassin suspecte un spam. “Mon test de sujet” passera le test alors que “Montestdesujet” ou “M o n t e s t d e s u j e t” ne passeront pas.
- pour un texte multipart certains logiciels de messagerie (thunderbird pour ne pas le nommer) regardent dans l’ordre les différentes parties du message et regarde s’ils peuvent afficher. ils s’arrêtent dès qu’ils ne peuvent plus. Concrètement cela veut dire que si on écrit dans le mail la partie html puis la partie texte Thunderbird va effectuer ces tests :
puis-je afficher la version html ?
oui !
puis-je afficher la version text ?
oui !
J’affiche la version text qui est la dernière que je peux afficher !
Donc pour avoir un affichage html sur ThunderBird (entre autres) il faut dans le multipart renvoyer la version text AVANT la version html.
- Ensuite le mail html envoyé doit être formaté comme une page html classique, sans erreur de structure.
- Nous avons l’habitude d’envoyer des mails composés d’une grande image et d’un lien “si vous ne lisez pas cliquez ici”. Pour SpamAssassin ce ratio image / texte est très mauvais. Il faut donc impérativement rajouter du texte. Pour “tricher” on peut rajouter un formulaire dans le mail avec un champ ou “monTexte” correspond a un texte descriptif suffisamment long pour satisfaire SpamAssassin.
- Il faut impérativement éviter d’utiliser le terme “ici” dans un lien url.
Il y a encore beaucoup de règles mais c’est pour l’instant les principales auxquelles je me suis heurtées lors de mes dernières compositions.

avril 14th, 2009 at 18:21
A. HALIM…
I have read several articles about spam assassin protection but this post is very interesting to me compared to the other articles when i found it on Tuesday….