Date de publication du RFC : Janvier 2008
Auteur(s) du RFC : T. Showalter, N. Freed (Sun)
Chemin des normes
Première rédaction de cet article le 20 février 2008
Le langage de filtrage du courrier électronique
Sieve repose sur un socle minimum, que doivent
comprendre toutes les implémentations de Sieve, et un certain nombre
d'extensions, couvrant des besoins
supplémentaires. Ce RFC déclare l'extension
vacation
, qui permet de mettre en place un
répondeur automatique.
La section 4 du RFC détaille l'extension et son mode
d'emploi. Comme toute extension Sieve, elle
doit être introduite par un require
. Elle prend
comme paramètre une chaîne de caractères qui sera envoyée à
l'expéditeur et diverses options comme :addresses
qui indique les adresses de destinataire que le script Sieve
considérera comme locales (car un répondeur automatique ne doit pas
répondre à n'importe quel message, seulement ceux où son maître est
listé dans les champs comme To:
, cf. section
4.5). Voici un exemple :
require "vacation"; vacation :addresses ["stephane@bortzmeyer.org", "bortzmeyer@gmail.com"] "Je suis parti, je lirai avec plaisir votre message plus tard.";
Comme l'avertit le RFC 3834, un répondeur
automatique est un programme dangereux, et tout le monde a déjà reçu
des réponses stupides, par exemple alors qu'on avait écrit à une liste
de diffusion, pas directement au destinataire. Ou bien des réponses
multiples alors qu'on avait déjà été prévenu. D'où la section 4.2 qui
précise qu'une mise en œuvre de vacation
doit se souvenir de qui a déjà été prévenu, pendant au moins sept
jours (valeur modifiable par l'option
:days
). Cette section est très détaillée car la
règle exacte est plus complexe, elle doit prendre en compte le
résultat des autres tests Sieve.
La section 5 décrit le message de réponse lui-même, les en-têtes
qu'il doit avoir (comme In-Reply-To
, section
5.8).
Ces messages de réponse étant destinés à des humains, la question
de leur internationalisation est cruciale. L'expéditeur qui écrit en
zazaki à un zazakophone serait surpris de
recevoir un message en anglais ! C'est l'objet de la section 7 qui
précise comment utiliser les en-têtes du RFC 3282 comme
Content-Language
:
if header :contains ["accept-language", "content-language"] "fr" { vacation "Je ne suis pas là."; } else { vacation "I am away."; }
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)