Éditeur Sieve brut pour le filtrage avancé des e-mails
Découvrez comment activer et valider un script Sieve, les extensions prises en charge, des exemples complets et les erreurs courantes.
Détails de l’article
Type, difficulté, forfaits et date de dernière mise à jour.
▼
Détails de l’article
Type, difficulté, forfaits et date de dernière mise à jour.
- Type
- Référence
- Difficulté
- Avancé
- Forfaits
- Agency
- Dernière mise à jour
- 9 sept. 2026
La plupart des utilisateurs n’auront jamais besoin de cette page. L’éditeur visuel de TrekMail répond à presque tous les besoins de filtrage et reste plus simple. Pour un développeur, un administrateur informatique gérant des dizaines de boîtes ou un utilisateur avancé limité par l’éditeur visuel, l’éditeur Sieve brut offre une maîtrise complète du traitement du courrier entrant.
Une offre Agency active est nécessaire pour activer un script brut. Les autres offres permettent d’enregistrer un brouillon dans l’éditeur, mais pas de l’exécuter.
Qu’est-ce que Sieve ?
Sieve est un petit langage de script destiné au filtrage des e-mails. Ses instructions s’exécutent à l’arrivée de chaque message. Une règle peut examiner l’expéditeur, l’objet, la taille ou les en-têtes, puis déplacer, transférer, marquer, rejeter le message ou envoyer une réponse automatique.
Contrairement aux règles locales d’Outlook ou d’Apple Mail, Sieve s’exécute sur le serveur. Il fonctionne 24 heures sur 24, que l’ordinateur soit allumé ou non et que l’application de messagerie soit ouverte ou fermée. Chaque appareil connecté à la boîte voit le même résultat.
Il n’est pas nécessaire d’apprendre Sieve pour bien utiliser TrekMail. L’éditeur visuel écrit le script en arrière-plan. L’éditeur brut sert uniquement lorsque vous devez produire vous-même une logique que l’interface visuelle ne permet pas.
Quand choisir Sieve brut ou les filtres visuels
Utilisez l’éditeur visuel si :
- Vous avez besoin de conditions simples comme « De contient X » ou « Objet contient Y ».
- Vous souhaitez déplacer, transférer, marquer, rejeter ou supprimer des messages.
- Vous ne souhaitez pas écrire de code.
- Vous voulez modifier rapidement une règle sans gérer la syntaxe.
Utilisez l’éditeur Sieve brut si :
- Vous avez besoin d’une logique complexe, par exemple « ceci ET cela, mais PAS cet autre élément ».
- Vous voulez reconnaître des motifs avec des expressions régulières, comme un format précis de numéro de commande.
- Vous devez réunir réponse d’absence, filtrage et transfert dans un seul script.
- La logique voulue ne peut pas être exprimée par les conditions et actions de l’éditeur visuel.
- Vous gérez des modèles à copier dans de nombreuses boîtes.
Où trouver l’éditeur
- Ouvrez le tableau de bord TrekMail et accédez à Boîtes aux lettres.
- Choisissez Gérer à côté de la boîte à configurer.
- Sélectionnez l’onglet Sieve.
- Un éditeur de code apparaît. Sur un compte Agency éligible, il contient d’abord le script produit par vos filtres administrés, s’il en existe. Modifiez-le ou repartez de zéro.
- Cliquez sur Enregistrer et activer pour téléverser et appliquer le script.
L’éditeur affiche votre script actuel, ou une page vide s’il n’en existe aucun. Écrivez ou collez le script, puis cliquez sur Enregistrer et activer.
Extensions prises en charge
Sieve est modulaire : le langage de base reste simple et des extensions ajoutent des fonctions. TrekMail prend en charge les extensions suivantes :
| Extension | Fonction |
|---|---|
fileinto |
Déplace un message dans un dossier précis. Sans elle, Sieve peut seulement conserver le message dans la boîte de réception ou le supprimer. |
reject |
Renvoie le message à l’expéditeur avec une erreur personnalisée. L’expéditeur sait que son e-mail n’a pas été remis. |
vacation |
Envoie une réponse automatique, comme un message d’absence, avec une limitation intégrée à une réponse par expéditeur et par période. |
copy |
Permet de transférer un message tout en gardant une copie dans votre boîte. Sans elle, le transfert retire le message. |
body |
Recherche dans le contenu du message, pas uniquement dans les en-têtes. Utile pour filtrer selon des mots-clés du texte. |
imap4flags |
Définit des indicateurs, par exemple lu, suivi ou important, qui apparaissent dans le client de messagerie. |
variables |
Conserve des éléments d’une correspondance pour les réutiliser plus loin. Pratique pour la logique avancée et pour éviter les répétitions. |
relational |
Ajoute des comparaisons numériques, telles que supérieur ou inférieur, utiles pour la taille et les en-têtes numériques. |
regex |
Autorise les expressions régulières, bien plus puissantes qu’une simple recherche de texte contenu. |
Pour utiliser une extension, déclarez-la au début avec une instruction require. Le serveur contrôle le script avant activation et refuse les extensions non prises en charge ou sensibles pour la sécurité.
Exemples de scripts
Voici quatre scripts complets et commentés à adapter.
Exemple 1 : transfert conditionnel complexe
Transférez les e-mails d’un client précis dont l’objet mentionne « proposal » et dont la taille est inférieure à 5 MB. Classez-les dans un dossier de projet et marquez-les.
require ["fileinto", "copy", "imap4flags", "relational", "comparator-i;ascii-numeric"];
# Forward proposal emails from client, but only if they are under 5MB
if allof (
address :contains "from" "@bigclient.com",
header :contains "subject" "proposal",
size :under 5M
) {
# Send a copy to the project manager
redirect :copy "pm@youragency.com";
# Flag it for follow-up
addflag "\\Flagged";
# File it in the client folder
fileinto "Clients/BigClient/Proposals";
# Stop processing further rules
stop;
}
# Everything else from this client goes to their general folder
if address :contains "from" "@bigclient.com" {
fileinto "Clients/BigClient";
stop;
}
Effet : la première règle est très précise et retient uniquement les messages du client concernant une proposition et pesant moins de 5 MB. Ils sont transférés, marqués et classés. La seconde règle récupère tous les autres messages de ce client et les place dans son dossier général.
Exemple 2 : expression régulière pour les numéros de commande
Repérez les e-mails contenant un numéro au format ORD-12345 ou ORD-98765 et classez-les automatiquement.
require ["fileinto", "regex"];
# Match order confirmation emails with order numbers like ORD-#####
if header :regex "subject" "ORD-[0-9]{4,6}" {
fileinto "Orders";
stop;
}
# Match support ticket numbers like TICKET-####
if header :regex "subject" "TICKET-[0-9]{3,}" {
fileinto "Support Tickets";
stop;
}
Effet : une expression régulière reconnaît un motif plutôt qu’un texte exact. [0-9]{4,6} signifie « entre 4 et 6 chiffres ». Elle trouve donc ORD-1234, ORD-12345 et ORD-123456 sans devoir énumérer chaque numéro possible.
Exemple 3 : absence, classement et transfert combinés
Un seul script gère votre réponse d’absence, transfère les messages urgents à une collègue et classe le reste par catégorie.
require ["fileinto", "vacation", "copy", "imap4flags"];
# Auto-reply to everyone (once per 3 days per sender)
vacation :days 3 :subject "Out of office until April 15"
"Thanks for your email. I am out of the office until April 15
with limited access to email. For urgent matters, please contact
Sarah at sarah@youragency.com. I will reply when I return.";
# Forward urgent emails to Sarah immediately
if header :contains "subject" "urgent" {
redirect :copy "sarah@youragency.com";
addflag "\\Flagged";
}
# File invoices
if header :contains "subject" "invoice" {
fileinto "Invoices";
stop;
}
# File newsletters
if address :contains "from" "newsletter" {
fileinto "Newsletters";
stop;
}
Effet : vacation s’exécute pour chaque message entrant et envoie votre réponse automatique au maximum une fois tous les 3 jours par expéditeur. Les autres règles classent ensuite le courrier. Comme vacation n’utilise pas stop, le script continue vers les règles suivantes. C’est ainsi que la réponse automatique se combine à d’autres filtres.
Exemple 4 : marquage selon un en-tête personnalisé
Certains systèmes ajoutent un en-tête tel que X-Priority pour indiquer l’importance. Ce script le lit et marque les messages prioritaires.
require ["imap4flags", "fileinto", "relational", "comparator-i;ascii-numeric"];
# X-Priority: 1 = highest, 5 = lowest
# Flag messages marked as high priority by the sending server
if header :value "le" :comparator "i;ascii-numeric"
"X-Priority" "2" {
addflag "\\Flagged";
}
# File low-priority messages (4 or 5) into a "Low Priority" folder
if header :value "ge" :comparator "i;ascii-numeric"
"X-Priority" "4" {
fileinto "Low Priority";
stop;
}
Effet : l’en-tête X-Priority utilise des nombres, où 1 est le plus important et 5 le moins important. L’opérateur :value "le" signifie « inférieur ou égal », donc il marque les messages de priorité 1 et 2. Les priorités 4 et 5 sont déplacées hors de la boîte de réception.
Remarques importantes
Les scripts bruts remplacent les filtres visuels. Quand vous enregistrez un script Sieve brut, il remplace les filtres créés dans l’éditeur visuel de cette boîte. Les deux modes ne peuvent pas être combinés. Les filtres visuels restent enregistrés, mais inactifs. Pour revenir à ceux-ci, cliquez sur Rétablir les valeurs par défaut en haut de l’onglet Sieve.
Le serveur valide avant l’activation. Lorsque vous cliquez sur Enregistrer et activer, le serveur vérifie la syntaxe. En cas de problème, il affiche l’erreur et refuse l’activation. L’ancien script ou les filtres visuels restent actifs jusqu’à la correction.
L’instruction require est obligatoire. Chaque extension employée doit figurer dans une instruction require au début. Si vous utilisez fileinto et vacation sans les déclarer, le serveur refuse le script. En cas de doute, incluez tout ce dont vous pourriez avoir besoin.
Le spam est filtré avant le script. Le filtre antispam de TrekMail traite les messages sur le serveur avant l’exécution de Sieve. Votre script ne voit que les messages ayant passé ce contrôle. Il est inutile d’écrire des règles antispam dans Sieve.
Revenir aux filtres visuels
Pour abandonner un script brut et revenir à l’éditeur visuel :
- Ouvrez l’onglet Sieve de la boîte.
- Cliquez sur Rétablir les valeurs par défaut dans l’angle supérieur droit.
- Confirmez l’action.
Cette opération supprime le script personnalisé et restaure celui produit automatiquement par les filtres visuels. Ces derniers, créés dans l’onglet Filtres, sont conservés pendant l’activation du script brut. La réinitialisation ne fait que les réactiver.
Enregistrer une modification dans l’onglet Filtres rétablit aussi le script administré. L’onglet Réponse automatique n’écrase pas un script brut. Revenez d’abord au mode administré, puis configurez la réponse.
Erreurs courantes et solutions
Instruction require oubliée. Chaque extension doit être déclarée. Pour une erreur telle que « unknown command fileinto », ajoutez require ["fileinto"]; au début.
Point-virgule manquant. Chaque commande Sieve se termine par un point-virgule. Si le validateur signale des éléments inattendus, vérifiez-les, surtout après stop, discard et fileinto.
Les chaînes doivent être entre guillemets. Les noms de dossiers, adresses et valeurs de comparaison exigent des guillemets doubles. fileinto Newsletters; échoue, tandis que fileinto "Newsletters"; est correct.
Barre oblique inverse dans les indicateurs. Les indicateurs IMAP comme \Flagged et \Seen nécessitent une double barre dans Sieve : "\\Flagged" et "\\Seen". Une seule barre sert de caractère d’échappement et provoque une erreur.
Le dossier n’existe pas. Créez-le dans votre client de messagerie avant d’y diriger du courrier. Un script brut ne crée pas automatiquement un dossier manquant, sauf si le script et le serveur prennent en charge cette fonction.
Le script est trop volumineux. Sa taille connaît une limite pratique. Au-delà de quelques centaines de lignes, demandez-vous si certaines règles peuvent être gérées par l’éditeur visuel. Tout ne doit pas résider dans un seul script.
Articles connexes
Articles similaires
Accédez aux guides voisins qui prolongent votre démarche.