Base de connaissances

1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !

Filtrer les e-mails entrants grâce au langage Sieve

Ce guide explique comment créer des règles de tri en mode Avancé, scripts en langage Sieve, pour classer automatiquement vos e-mails entrants sur Infomaniak selon certaines conditions.

 

⚠  Disponible avec :

kSuitegratuit
 Standard
 Business
 Enterprise
 my kSuite
 my kSuite+
Service MailStarter 1 adresse max.
 Premium 5 adresses min.

 

Préambule

  • Si vous ne disposez pas d'une offre compatible ou si vous préférez une configuration simplifiée, prenez connaissance de cet autre guide.
  • Contrairement aux règles de tri proposées au sein de logiciels/clients de messagerie (Microsoft Outlook, Mozilla Thunderbird, Apple Mail...), ces règles agiront directement sur le serveur de vos boîtes mail avant même la connexion IMAP.
  • Il est possible d'importer des fichiers Sieve via un bouton.
  • En activant ce mode, les règles standard existantes seront conservées mais désactivées.
  • La commande redirect (permettant de renvoyer un e-mail vers une autre adresse) n'est pas autorisée dans les scripts.
    • Si vous importez un script Sieve provenant d'un autre hébergeur, assurez-vous de retirer cette commande.
    • Pour transférer des e-mails, utilisez l'assistant en mode Standard ou la rubrique Redirections de votre Service Mail.

 

Accéder aux règles depuis l'app Web Mail Infomaniak

Prérequis

Afin d'accéder aux filtres de tri pour votre messagerie Infomaniak :

  1. Cliquez ici afin d'accéder à l'app Web Mail Infomaniak (service en ligne ksuite.infomaniak.com/mail).
  2. Cliquez sur l'icône Paramètres en haut à droite.
  3. Vérifiez ou sélectionnez l'adresse mail concernée dans le menu déroulant.
  4. Cliquez sur Filtres et règles:

 

Accéder aux règles depuis un Service Mail

Afin d'accéder aux filtres de tri pour votre messagerie Infomaniak :

  1. Cliquez ici afin d'accéder à la gestion de votre produit sur le Manager Infomaniak (besoin d'aide ?).
  2. Cliquez directement sur le nom attribué au produit concerné.
  3. Cliquez sur l'adresse mail concernée dans le tableau qui s'affiche.
  4. Cliquez sur l'onglet Règles depuis le menu latéral gauche (ou barre supérieure):

 

Créer une nouvelle règle en mode Avancé (expert)

  • Assurez-vous de cliquer sur le mode Avancé :

Premier exemple de tri avancé

Voici un exemple simple d'une commande utilisant ce langage :

require ["fileinto"];
if address :contains "from" "facebook.com" {
    fileinto "fb";
} elsif header :matches "List-Unsubscribe" "*" {
    fileinto "nl";
} else {
    keep;
}

Explications :

  1. Chargement des extensions requises : utilisez require ["fileinto"]; pour indiquer que vous allez utiliser la fonction fileinto.
  2. Filtrage des messages Facebook : utilisez if address :contains "from" "facebook.com" pour vérifier si l'adresse de l'expéditeur contient "facebook.com" ; si oui, le message est classé dans le dossier "fb" avec fileinto "fb";.
  3. Filtrage des messages avec un lien de désinscription : utilisez elsif header :matches "List-Unsubscribe" "*" pour vérifier si l'en-tête "List-Unsubscribe" est présent dans le message ; si oui, le message est classé dans le dossier "nl" avec fileinto "nl";.
  4. Conservation des autres messages : utilisez else { keep; } pour conserver tous les autres messages qui ne correspondent pas aux critères précédents.

Attention :

  • Si vous devez mentionner un sous-dossier, utilisez le séparateur / (comme dans le second exemple), mais il n'est pas nécessaire de spécifier INBOX dans vos codes
  • Assurez-vous que les dossiers "fb" et "nl" existent déjà dans votre boîte de réception ; sinon, les messages risquent de ne pas être triés correctement
  • Le filtre address :contains "from" "facebook.com" fonctionne correctement pour les adresses qui contiennent "facebook.com" dans le champ "from"
  • Le filtre header :matches "List-Unsubscribe" "*" vérifie uniquement la présence de l'en-tête "List-Unsubscribe", pas son contenu

 

Second exemple de tri avancé

Ce code modifie l'objet en fonction de l'expéditeur (ajoute un préfixe à l'objet lorsqu'un e-mail passe le filtre, par exemple) :

require ["fileinto", "editheader", "variables", "regex"];
if address "sender" "owner-scientific-linux-devel at LISTSERV.FNAL.GOV" {
    if header :regex "subject" "((Re|Fwd): *)\\[SCIENTIFIC-LINUX-DEVEL\\] *(.*)" {
        deleteheader "Subject";
        addheader "Subject" "${1}${3}";
    } else {
        # Ajouter un préfixe si l'objet ne correspond pas déjà au modèle
        deleteheader "Subject";
        addheader "Subject" "[SL-Devel] ${1}";
    }
    fileinto "Mail List/SL-Devel";
}

Explications :

  1. Extensions requises :
    1. fileinto : pour classer les messages dans des dossiers.
    2. editheader : pour modifier les en-têtes des e-mails.
    3. variables : pour utiliser des variables dans les expressions.
    4. regex : pour les expressions régulières.
  2. Condition sur l'expéditeur :
    1. if address "sender" "owner-scientific-linux-devel at LISTSERV.FNAL.GOV" : vérifie si l'expéditeur correspond.
  3. Condition sur l'objet :
    1. if header :regex "subject" "((Re|Fwd): *)\\[SCIENTIFIC-LINUX-DEVEL\\] *(.*)" : vérifie si l'objet correspond au modèle spécifié.
    2. deleteheader "Subject"; et addheader "Subject" "${1}${3}"; : supprime l'objet existant et ajoute un nouvel objet avec les parties capturées.
  4. Ajout d'un préfixe si l'objet ne correspond pas déjà au modèle :
    1. addheader "Subject" "[SL-Devel] ${1}"; : ajoute un préfixe "[SL-Devel]" à l'objet s'il n'est pas déjà présent.
  5. Classement du message :
    1. fileinto "Mail List/SL-Devel"; : classe les messages dans le dossier "Mail List/SL-Devel".

Attention :

  • Assurez-vous que le dossier "Mail List/SL-Devel" existe déjà dans votre boîte de réception.
  • Vérifiez que le script modifie correctement l'objet des e-mails pour ajouter ou ajuster le préfixe si nécessaire.

Cette FAQ a été utile?