Filtres mail Free.fr en 2020

Pour gérer notre mail, on utilise des comptes emails chez Free qui sont ensuite récoltés par une machine interne afin de disposer pleinement de nos emails tout en bénéficiant de l’infrastructure résiliente de Free (j’ai peur qu’en auto-hébergeant mon mail je finisse par en rater à cause d’une défaillance en mon absence, par exemple en vacances). Depuis un moment, certains de mes utilisateurs avaient un comportement étrange, d’autant plus étrange qu’il n’affectait pas tout le monde : du courrier n’arrivait jamais car classé automatiquement par Free dans des dossiers SPAM, Commercial ou encore ReseauxSociaux.

Contexte

Au début, on ne s’en est pas vraiment inquiété car, comme l’indique le nom de ces dossiers, ça concerne des mails qu’on n’attend pas forcément. Mais un jour, on a découvert la présence de ce phénomène car l’absence de messages de certaines sources devenait suspecte.

Contournement

Pendant un temps, on a contourné le problème. On s’est contenté de configurer Thunderbird pour qu’il se connecte aussi au compte de Free. Ainsi, les utilisateurs concernés avaient accès à ces mails à mi-chemin entre l’utile et l’indésirable.

Mais, crise COVID aidant, le volume de mail a augmenté et l’accès au PC s’est fait plus difficile, le bureau servant de lieu de télétravail. La consultation des mails s’est donc reportée vers les smartphones, limités au serveur de mail auto-hébergé. Après avoir vécu un nouveau raté, il est apparu évident que cette situation ne pouvait pas durer.

Analyse

En se mettant en quête de l’origine de ce comportement, j’ai découvert à travers le webmail de Free (à base de RoundCube à l’heure qu’il est) la présence de trois filtres Sieve :

  • “X-ProXaD-SC” contient “state=SPAM” -> SPAM
  • “X-ProXaD-SC” contient “state=HAM:CommercialEmail” -> Commercial
  • “X-ProXaD-SC” contient “state=HAM:SocialNetwork” -> ReseauxSociaux

Chose étrange (ou pas, avec Free) lorsqu’on cherche à vérifier ce réglage sur d’autres comptes, soit on a une belle erreur remonté par RoundCube comme quoi le serveur Sieve est injoignable, soit on a carrément une page blanche. Mais passons.

Internalisation

Maintenant qu’on sait ce qui ne va pas, on va pouvoir ajuster. Et plutôt que de laisser Free classer du mail dans des dossiers qui ne sont pas récoltés, on va laisser les mail arriver jusqu’à nous et les filtrer une fois sur place, en reproduisant les règles en local. Ce serait dommage de se priver de l’aide des serveurs de Free pour lutter contre le SPAM.

Le mail est géré par Dovecot. C’est ce dernier qui gère le classement et la mise à disposition. C’est aussi lui qui gère les règles Sieve.

On rajoute donc un fichier /etc/dovecot/global_script/free.sieve :

require "fileinto"; 
if header :contains "X-ProXaD-SC" "state=HAM:CommercialEmail" {
    fileinto "Commercial";
}
if header :contains "X-ProXaD-SC" "state=HAM:SocialNetwork" {
    fileinto "ReseauxSociaux";
}
if header :contains "X-ProXaD-SC" "state=SPAM" { 
    fileinto "Junk"; 
}

Il ne reste plus qu’à désactiver les filtres coté fournisseur.

Références