Et si on jouait un peu plus avec les règles Sieve ?

Sieve permet d’implémenter des règles de filtrage, plus ou moins complexes, coté serveur email. Une fois la règle implémentée, elle s’appliquera, peu importe le logiciel sur lequel vous visualisez vos mails (Outlook, Thunderbird, Apple Mail, un téléphone Android, un webmail…).

Les règles de filtrage via Sieve n’étaient jusqu’alors disponibles que via notre nouveau service webmail, elles le sont maintenant à partir de n’importe quel client logiciel.

J’utilise personnellement Thunderbird et l’extension Sieve de Thomas Schmid  que vous pouvez ajouter via les addons (les modules complémentaires). Ce genre de module existe sur tous les logiciels.

Une documentation avec des exemples est disponible sur le wiki de Dovecot, le serveur IMAP utilisé pour Gandi Mail: ou sur Wikipedia.

L’idée est surtout ici de vous expliquer comment j’utilise les règles Sieve pour faciliter mon quotidien.

Je reçois près de 3000 emails par jour sur ma boite professionnelle, et 200 de plus sur ma boite personnelle, accessibles simultanément depuis mon ordinateur et sur mon téléphone. Les règles Sieve me permettent de trier mes mails efficacement coté serveur.

1/ Définir ce que je veux recevoir sur mon téléphone

Ma règle n°1 est : « Si je ne suis pas en destinataire ou en copie, c’est que ce n’est pas un mail important, et que sa prise en compte peut être temporairement différée ». Ainsi, tous les autres emails seront placés dans des sous-répertoires de ma boite de réception « Inbox ». Les emails importants seront donc accessibles directement, les autres uniquement en consultant le répertoire concerné.

#la ligne require doit être la première ligne de votre fichier Sieve. Il faudra concaténer
#les exemples que je donne pour n'avoir qu'une seule ligne require["requirement1","requirement2"...]
require ["fileinto"];
#Si je suis en destinataire ou en copie d'un mail c'est qu'il m'est destiné directement
if header :contains ["to","cc"] "moi@gandi.net"
{
fileinto "INBOX";
stop;
#Si non, si l'email vient de @gandi.net ? je le veux dans un répertoire Gandi
elsif  header :matches "From" "*@gandi.net>"
{
fileinto "INBOX/Gandi";
#Si non laisse moi faire le tri ailleurs
} else
{
fileinto "INBOX/A trier";
}

2/ Classer mes mails automatiquement

Dès que je m’inscris sur un site, j’utilise une adresse avec un + de type nicolas+nomdusite@. De cette manière , les correspondances du site en question sont classées dès leur arrivée dans un répertoire créé automatiquement.

require ["variables", "envelope", "fileinto", "subaddress"];
#si je suis destinataire
if envelope :is :user "to" "nicolas" {
if envelope :matches :detail "to" "*" {
#alors je stocke tout ce qui est après le + dans une variable qui s'appelle name
set :lower :upperfirst "name" "${1}";
#dans le cas où name est vide je garde le mail dans mon Inbox
if string :is "${name}" "" {
fileinto "Inbox";
#sinon, je stocke le mail dans un répertoire plus/Amazon par exemple
} else {
fileinto "plus/${name}";
}

3/ Supprimer les spams

Nous vous reparlerons très bientôt avec une mise à jour de notre anti-spam dans les jours à venir, mais nous pouvons déjà voir comment classer dans un répertoire Spam les mails qui sont identifiés comme tels.

if header :contains "X-Spam-Flag" "YES"
fileinto "Spam";
}

Si le niveau de spam est élevé (défini par le nombre d’étoiles), je préfère autant rejeter le mail directement.

if header :contains "X-Spam-Level" "*******"
{
discard;
stop;
}

4/ Gérer mon répondeur

Quand je pars en vacances (bientôt), j’active directement mon message d’absence dans mon fichier Sieve, « days 1 » signifiant que je n’envoie le message d’erreur qu’une seule fois par jour et par adresse.

require ["fileinto","imap4flags","regex","vacation"];
# rule:[Répondeur]
vacation
:days 1
:subject "Je suis absent jusqu'au 17 août / Out of the office until the 17th of August"
text:
Hello,
Je suis en vacances jusqu'au 17 août, je vais lire mes mails, mais de manière sporadique uniquement.
En cas d'urgence, vous pouvez contacter quelqu'un d'autre pasmoi@whatever.net
Nicolas

5/ Sans oublier le plus important \°/

Si je reçois un mail de mon PDG préféré (coucou Stephan), je veux qu’il soit « marqué » (en fonction des clients de messagerie, il peut s’agir de drapeaux ou d’étoiles). De cette manière,en configurant mon téléphone pour qu’il active automatiquement les notifications pour les emails marqués, je suis sûr d’être notifié.

require ["imap4flags"];
>if envelope "from" "monPDG@gandi.net"
{
setflag "\\Flagged";
stop;
}

 

J’espère que ces règles vous seront utiles. N’hésitez pas à partager les vôtres en commentaires !

Nicolas.

Laisser un commentaire

    Guillaume

    Une mise à jour du webmail Roundcube (je n’aime pas SoGo : trop lent, trop lourd, trop d’espace perdu, trop peu d’informations affichées sur une page) serait la bienvenue :
    – Pour profiter de la vue en 3 panneaux,
    – Avec le plugin Managesieve pour gérer nos filtres.

      la mise à jour est prévue d’ici fin septembre.

    Guillaume V. (pas le même)

    Comme le Guillaume précédent, je n’aime pas non plus SOGo. Lourd, lent, etc. Tellement que je cherche une autre solution d’hébergement de mes mails. Mais si des mises à jour sont prévues, je reste. J’aimerai tellement pouvoir utiliser la dernière version de Horde ! Merci.

    Bonjour,
    ça à l’air intéressant, mais comment on peut accéder à la gestion de ce module sous windows 10 pour y apporter ces indications ?
    Je n’ai rien trouvé qui puisse m’aider.

    désolé de ne pas être linuxien 😉

      Bonjour Jacques, a priori, Thunderbird fonctionne également sur Windows, n’hésitez pas à l’installer !

    Kolbo5

    Merci pour cet article !
    J’attendais cette possibilité depuis que Sieve à été mis en place il y a plus d’un an ( https://news.gandi.net/fr/2017/03/activation-des-regles-serveur-sieve-sur-gandi-mail/ ) !

    Je l’attendait notamment pour pouvoir créer une règle telle que décrite dans la partie « 2 ». 🙂
    Par contre je conseille (lorsque c’est possible) d’utiliser plutôt un alias « monPseudo.* » plutôt que « monPseudo+* ». Car le « + » :
    – n’est pas accepté dans les champs emails de certains sites (à tord je sais, mais bon…) ;
    – pourrait à la limite être facilement repéré et supprimé par les spammeur (une règle pour remplacer monPseudo+watever@ en monPseudo@ ne serait pas dure à lancer sur un listing d’email).

      gnuraph

      Est-ce à dire que le mécanisme de sous-adressage fonctionne avec un point de la même manière qu’avec le signe plus ?

      Si c’est le cas, je m’en vais utiliser de ce pas ce changement de caractère ! 😀

      nicolas+nomdusite@ est la même adresse que nicolas@ mais nicolas.nomdusite@ est une autre adresse donc çà va être difficile de faire fonctionner Sieve de cette manière.

      Vous pouvez, par contre, définir un alias du genre nicolas* sur l’adresse nicolas@ (dans votre compte sur admin.gandi.net), tous les mails nicolastruc@ ou nicolas.truc@ iront dans votre boite mail, vous pourrez alors les trier.

    Patrick

    Bonjour Nicolas,
    Merci pour le post et les précisions intéressantes.
    J’ai une question de mon côté, quand j’utilise l’extension thunderbird (après avoir utilisé http://mozfilter2sieve.sourceforge.net/mailfilters.html) pour migrer mes règles existantes.
    1. Mes règles n’apparaissent pas (même si elles sont bien exécutées)
    2. Si je re-sauvegarde les règles depuis le serveur sogo, mes règles « locales » sont écrasées.
    Y a t’il moyen de pallier à ce problème ou est on obligé de gérer les règles qu’à un seul endroit ?
    Merci

      1. c’est étrange. Vous nous envoyez un petit mail avec la boite concernée pour qu’on regarde ?
      2. on a vu le bug, on a un contournement possible pour ne pas écraser mais au final, il ne peut y avoir qu’un seul fichier actif par boite

      Merci

    Ben

    C’est génial, merci pour le partage, des règles centralisées et lisibles c’est vraiment appréciable.

    Après avoir joué un peu je confirme ce que dit patrick : il vaut mieux créer une règle basique sur Sogo puis ensuite depuis Thunderbird récupérer la règle existante.

    Au niveau de la règle de filtrage automatique avec le +prestataire, cela marche presque chez moi : quand le répertoire existe tout va bien mais il ne le créé pas à la volée. Pour la création à la volée il faut ajouter un create `fileinto :create « plus/${name} »; ̀ mais visiblement ça ne passe pas chez moi

    Un détail il manque deux `}}` à la fin du bloc de code dans l’extrait plus/presta

      Ben

      Précision, les rêgles Sieve semblent être chargées au démarrage de thunderbird. Il est judicieux de redémarrer Thunderbird pour être sur ( et du coup la création des répertoires fonctionne)

    Adrien

    Très intéressé par la partie 2 de l’exemple, mais elle a malheureusement l’air incompatible avec SOGo (sauf si j’ai raté quelque chose).

    De ce que je comprends, soit on fait des règles assez simples dans SOGo, soit on fait des règles assez complexes dans un autre programme, mais dans ce cas il ne faut plus jamais les éditer dans SOGo.

    Merci de me contredire, par exemple en m’expliquant qu’on peut éditer directement le source du fichier de règles dans SOGo. 🙂

      Je ne peux malheureusement pas vous contredire : Sogo ne permet pas d’éditer la source du fichier. En revanche, en fonction des outils que vous utilisez, notamment Thunderbird, c’est possible. N’hésitez pas à contacter notre service client qui pourra vous aider à configurer vos règles !