Mise en place d'une liste SIEVE chez Infomaniak

Posté le 28 mars 2025 par cyprien 6 min

INTRODUCTION

Ceux qui me suivent dans mon quotidien savent à quel point je déteste être sollicité pour tout et n'importe quoi. Certes, cela peut sembler (très) asocial, surtout lorsqu'on évolue en tant qu’indépendant dans le domaine de l’informatique.

Cependant, en y regardant de plus près, certaines démarches commerciales sont particulièrement agressives, jouant tantôt sur la peur, tantôt sur des techniques de persuasion psychologique. Tout cela pour dire que le cold emailing ? Très peu pour moi.

Si je devais faire un récapitulatif des sollicitations que j’ai reçues :

  • J’aurais changé de stratégie SEO une dizaine de fois,
  • J’aurais souscrit à quatre ou cinq assurances professionnelles rien que l’année dernière,
  • J’aurais acheté des bornes de recharge pour une voiture électrique… que je n’ai jamais possédée, ainsi que des vélos électriques,
  • J’aurais commandé des plantes artificielles pour embellir mes locaux, mais aussi des cahiers en pierre,
  • J’aurais organisé un stand avec service de petits fours lors d’événements… alors que je n’ai jamais eu de stand,
  • J’aurais même recruté un psychologue !

Et la liste pourrait encore s’allonger.

Pourquoi ne pas les mettre en SPAM ?

J’ai quelques raisons bien concrètes d’éviter ce type de sollicitations :

  1. Un impact direct sur ma boîte mail Ayant déjà été confronté à ce problème, je sais que ces pratiques peuvent rapidement encombrer le dossier SPAM de ma messagerie. Certaines entreprises contournent ce filtre en utilisant plusieurs adresses e-mail, voire plusieurs domaines différents, afin d’éviter d’être bloquées. Une stratégie astucieuse… peut-être un peu trop. Il m’est même arrivé de recevoir des démarchages provenant d’adresses totalement fictives ou de boîtes e-mail jetables.

  2. Le non-respect du RGPD En théorie, le RGPD impose un cadre strict aux démarchages commerciaux, notamment avec l'obligation de recueillir le consentement dans certains cas précis. Par exemple, si vous êtes contacté pour un service qui n’a absolument rien à voir avec votre domaine d’activité, le consentement est obligatoire. Certes, il est fréquent (mais pas systématique) de trouver un lien de désinscription dans ces e-mails… sauf que celui-ci ne fonctionne que rarement.

SPAM la bonne solution?

Utilisant Kmail d'Infomaniak depuis quelques mois pour ma messagerie professionnelle sur plusieurs domaines, j’en avais assez de recevoir en moyenne 5 à 10 sollicitations par jour pour des offres totalement inadaptées à mes besoins.

Heureusement, Kmail propose une fonctionnalité standard permettant d’automatiser certaines actions, comme :

SI je reçois un e-mail de [domaine X] ALORS il est automatiquement supprimé.

Cette règle répond parfaitement à mon besoin : bloquer tout message provenant d’un domaine spécifique, quel que soit l’expéditeur. Après plusieurs tests, je peux confirmer que cela fonctionne très bien.

Oui mais ... SIEVE

Le problème, c’est que recevoir du SPAM quotidiennement implique de devoir créer une règle par domaine. Une solution efficace sur le papier, mais rapidement contraignante à gérer au quotidien. C’est là qu’intervient SIEVE, un langage de filtrage des e-mails défini par la RFC 5228 :

Sieve (RFC 5228) is a language for filtering e-mail messages. It is designed to be implementable on either a mail client or mail server.

Infomaniak prend en charge SIEVE, ce qui permet de centraliser et d’optimiser les règles de filtrage avec un seul script capable de : - Filtrer les e-mails par domaine - Filtrer les messages en fonction de l’objet - Filtrer selon le nom/prénom de l’expéditeur

Voici le script que j’utilise pour répondre à mon besoin :

require ["fileinto", "vacation", "reject", "body"];

# Liste des domaines bloqués
if anyof (
    address :domain :is "from" "XXX",
    address :domain :is "from" "XXX"
) {
    reject "SPAM.";
    discard;
    stop;
}

# Blocage par nom d'expéditeur (nom affiché dans "From")
if anyof (
    header :contains "From" "XXX",
    header :contains "From" "XXX"
) {
    reject "SPAM.";
    discard;
    stop;
}

# Blocage par mots-clés dans le sujet ou le corps du mail
if anyof (
    header :contains "Subject" "offre exclusive",
    header :contains "Subject" "gagnez de l'argent",
    header :contains "Subject" "bitcoin",
    header :contains "Subject" "remboursement immédiat",
    header :contains "Subject" "Meeting Request",
    header :contains "Subject" "Brochure & Price",
    body :contains "travail à domicile",
    body :contains "crédit facile",
    body :contains "pariez maintenant",
    body :contains "facture impayée",
    body :contains "promotion incroyable"
) {
    reject "SPAM.";
    discard;
    stop;
}

Des explications?

On va décortiquer basiquement le code afin de mieux comprendre son mode de fonctionnement chez Infomaniak.

require ["fileinto", "vacation", "reject", "body"];

Cette première ligne est très important car c'est elle qui va me dire ce que je vais devoir faire avec les domaines incriminés. Dans notre cas, on va reject le mail s'il respecte une des conditions suivants cette ligne de code. C'est à dire, que l'expéditeur va recevoir un mail lui notifiant que son démarchage mail n'a pu aboutir.

if anyof (
    address :domain :is "from" "XXX",
    address :domain :is "from" "XXX"
) {

Permet de lister, ligne par ligne l'intégralité des domaines que vous voulez bloquer définitivement.

    reject "SPAM.";
    discard;
    stop;
}

Ici cela indique la raison de ce refus de réception du mail. Dans notre cas présente l'expéditeur recevoir un mail de refus pour raison "SPAM.". Un conseil, évitez de mettre n'importe quoi, vu que la raison sera publique.

if anyof (
    header :contains "From" "XXX",
    header :contains "From" "XXX"
) {

Cette fois-ci on bloque suivant le nom et/ou le prénom de l'expéditeur. Cela évite un certain nombre de tracas si le démarchage se fait toujours en nom propre.

if anyof (
    header :contains "Subject" "offre exclusive",
    header :contains "Subject" "gagnez de l'argent",
    header :contains "Subject" "bitcoin",
    header :contains "Subject" "remboursement immédiat",
    header :contains "Subject" "Meeting Request",
    header :contains "Subject" "Brochure & Price",
    body :contains "travail à domicile",
    body :contains "crédit facile",
    body :contains "pariez maintenant",
    body :contains "facture impayée",
    body :contains "promotion incroyable"
) {

Code que j'utilise de façon partielle avec SIEVE et Infomaniak. Toujours bloquer, filtrer les expéditeurs, c'est bien certes, mais il faut faire aussi attention à ne pas être TROP restrictif. Un faux positif pourrait très bien arriver surtout, si vous utilisez des mots clés précis (par exemple facture).