Astuces pour les professionnels du web

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

gandimail

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;
}

Vous pouvez retrouver d’autre exemples sur notre documentation.

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

Nicolas.