Filtrage e-mails · 5 min read · Dec 29, 2025
Guide rapide sur le langage SIEVE pour le filtrage des e-mails
Guide rapide sur le langage SIEVE pour le filtrage des e-mails
Qu’est-ce que SIEVE ?
SIEVE est un langage créé et utilisé pour le filtrage des e-mails qui élargit les options de filtrage généralement fournies par les serveurs de messagerie ou les applications Antispam/Antivirus. Ils fonctionnent essentiellement en comparant différentes clés à l’aide de différents comparateurs et méthodes de comparaison, par rapport aux en-têtes d’un message e-mail. En fonction du résultat de la comparaison, vous pouvez appliquer différentes actions au message e-mail correspondant, c’est-à-dire rejeter, jeter, rediriger, etc.
Ce langage fournit une méthodologie de filtrage extrêmement flexible, car les utilisateurs peuvent définir un nombre quelconque de filtres de script selon leurs besoins. Conçu pour être facilement mis en œuvre sur un client de messagerie ou un serveur de messagerie (tel que Sendmail, Qmail, Axigen, etc.), l’utilisation des scripts SIEVE ne dépend pas du protocole d’accès, de l’architecture de messagerie et du système d’exploitation.
SIEVE est conçu comme une norme Internet proposée, à la suite d’un effort multi-fournisseur qui a été discuté lors de diverses réunions techniques et orientées vers les normes, publiques et privées, depuis au moins 1994
Pourquoi utiliser les filtres SIEVE
Le trafic de messagerie pour la plupart des utilisateurs a augmenté en raison de l’utilisation accrue des e-mails, de l’émergence des e-mails non sollicités comme forme de publicité et de l’utilisation accrue des listes de diffusion.
Il existe plusieurs raisons d’utiliser le système de filtrage SIEVE :
- Vous pouvez créer des règles efficaces et flexibles. Les scripts écrits en SIEVE sont exécutés lors de la livraison finale, lorsque le message est déplacé vers la boîte aux lettres accessible à l’utilisateur. Par conséquent, il est raisonnable de trier lorsque le MTA dépose le courrier dans la boîte aux lettres de l’utilisateur.
- Les scripts SIEVE sont une méthode de filtrage sûre car ils ne fonctionnent pas sur le contenu du courrier mais extraient uniquement des informations de l’en-tête du courrier et prennent des mesures selon les règles pré-définies.
- En complément des applications Antispam et Antivirus, vous pouvez utiliser des scripts SIEVE pour filtrer également tous les e-mails légitimes, gagnant ainsi en rapidité et en efficacité lors de l’utilisation de la communication par e-mail.
Le langage SIEVE
1. Aspects généraux
SIEVE a une forme fixe décrite comme une norme mais peut être amélioré en utilisant des extensions. Le mécanisme d’extension fonctionne si le système implémente ces extensions. Pour utiliser une extension, elle doit être annoncée au début du fichier (script) avec une clause require.
require "extension_name"
or
require ["extension_name1", "extension_name2"]La structure de SIEVE telle que décrite dans la norme définit 5 actions : keep, fileinto, reject, discard, redirect qui sont explicites. Elle définit également 3 commandes de contrôle :
- qui arrête le traitement à ce point - structure
- commande require - qui définit une extension du langage.
La structure if a la forme :
if
elsif
else
où un bloc est un bloc de commandes (actions et commandes de contrôle - y compris d’autres ifs)
Dans la forme standard, sans aucune extension, le test peut être l’un des suivants :
- address - teste un ensemble d’en-têtes d’adresse par rapport à un ensemble de clés à l’aide de différentes méthodes de comparaison ;
- envelope - test optionnel ;
- header - teste un ensemble d’en-têtes par rapport à un ensemble de clés à l’aide de différentes méthodes de comparaison ;
- true, false – constantes ;
- allof
- logique et entre plusieurs tests ; - anyof
- logique ou entre plusieurs tests ; - not
- négation d’un test ; - exists - test si un ensemble d’en-têtes existe ;
- size - test par rapport à la taille d’un message ;
Un test peut prendre 2 valeurs : true ou false.
2. Exemples
Un exemple simple d’un script SIEVE qui déplacera tous les e-mails ayant “Spam” dans l’objet ou reçus de “[email protected]”, dans le dossier Spam peut être écrit comme suit :
require "fileinto"
if anyof(address :is ["From", "Sender"] "[email protected]", header :matches "Subject" "Spam")
{
fileinto "Spam";
}Un autre exemple, plus complexe, est un filtre qui rejettera tous les e-mails ayant un virus et étant des e-mails sortants et non entrants. Cet exemple utilise plusieurs extensions qui doivent être mises en œuvre.
require ["envelope","virustest","relational","comparator-i;ascii-numeric","reject"];
if allof(virustest :value "eq" :comparator "i;ascii-numeric" "5",
envelope :contains "From" ["domain1.org", "domain2.org"],
not envelope :contains "To" ["domain1.org", "domain2.org"]) {
reject "Cet e-mail provient de domain.org vers le monde et contient un virus";
}Pour une présentation plus détaillée du langage SIEVE, nous vous conseillons également de lire le dédié
RFC 3028
.
Filtres SIEVE dans le serveur de messagerie AXIGEN
Actuellement, AXIGEN utilise le langage SIEVE pour la définition des filtres de script. Différents scripts SIEVE définis par l’utilisateur peuvent être inclus dans n’importe quel système de filtrage AXIGEN. Lorsqu’il est activé dans AXIGEN, chaque filtre se voit attribuer une valeur de priorité. La notion de priorité est utilisée pour définir l’ordre des filtres dans la chaîne de filtrage. Cela signifie que les filtres avec une priorité plus élevée seront appliqués en premier. Tous les filtres SIEVE peuvent être activés à plusieurs niveaux : serveur, domaine ou compte/liste de diffusion.
AXIGEN implémente également l’extension de vacances SIEVE. Cela signifie que des fichiers de script SIEVE peuvent être créés et appliqués pour générer des réponses automatiques de type hors du bureau. Ainsi, des messages générés automatiquement peuvent être envoyés lorsque l’utilisateur du compte pour lequel les vacances s’appliquent est en vacances, hors du bureau ou en général absent pendant une période prolongée. Bien qu’il ne s’agisse pas d’une fonction de sécurité, l’extension de vacances est une fonctionnalité supplémentaire disponible via des fichiers de script. Pour une mise en œuvre facile de hors du bureau dans notre serveur de messagerie, veuillez consulter cet exemple disponible dans notre base de connaissances :
Pour des instructions détaillées sur le langage SIEVE et la mise en œuvre des scripts dans AXIGEN, veuillez consulter notre
documentation en ligne .
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.