| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| filtres_sieve [2025/06/22 20:36] – [Interface simplifiée] Flaz | filtres_sieve [2025/07/01 17:18] (Version actuelle) – [Interface avancée] Flaz |
|---|
| ==== Interface avancée ==== | ==== Interface avancée ==== |
| |
| À la différence de l'interface simplifiée, l'interface avancée vise à écrire du code informatique. L'intérêt est que l'on a accès à toute la puissance d'expression du langage. Cela permet de produire des règles plus précises mais aussi plus générales. | À la différence de l'interface simplifiée, l'interface avancée permet de rédiger des règles en utilisant le langage Sieve. L'intérêt est que l'on a accès à toute la puissance d'expression du langage. Cela permet de produire des règles plus précises, plus complexes, plus générales… |
| === Le langage Sieve === | === Le langage Sieve === |
| |
| À la lecture, on comprends plus ou moins l'idée. L'écrire est une autre paire de manches… | À la lecture, on comprends plus ou moins l'idée. L'écrire est une autre paire de manches… |
| |
| La deuxième difficulté est qu'il existe de nombreuses variantes du langage Sieve. Certes, la syntaxe et le vocabulaire de base sont normalisés mais le langage est extensible. La raison pour laquelle on se donne la peine d'écrire du code informatique étant précisément d'exploiter la puissance d'expression du langage dont on dispose, il faut en connaître les particularités. Seul votre hébergeur peut indiquer la liste et la signification des extensions qu'il propose. | Dans cet autre exemple, je veux "réécrire" le //sujet// de tous les mails qui arrivent dans un boîte mail qui ne devrait plus en recevoir : |
| | |
| | <code> |
| | require "editheader"; |
| | require "variables"; |
| | if header :matches "Subject" "*" { |
| | set "subject" "${1}"; |
| | deleteheader "Subject"; |
| | addheader :last "Subject" "[Old-Box] ${subject}"; |
| | } |
| | </code> |
| | C'est déjà moins lisible que l'exemple précédent. On constate cependant que la réécriture/modification du //sujet// a dû prendre la forme d'une suppression complète suivie d'un ajout. |
| | |
| | La deuxième difficulté est qu'il existe de nombreuses variantes du langage Sieve. Certes, la syntaxe et le vocabulaire de base sont normalisés mais le langage est extensible. Heureusement, les extensions les plus utilisées sont normalisées((Dans les exemples précédent, //fileinto//, //editheaders// et //variables// sont des extensions normalisées.)). Malheureusement, toutes les extensions normalisées ne sont pas disponibles sur tous les serveurs. Puisqu'on se donne la peine d'écrire du code informatique afin d'exploiter la puissance d'expression du langage dont on dispose, il faut en connaître les particularités. Seul votre hébergeur de mail peut vous indiquer la liste et la signification des extensions qu'il propose. |
| |
| === Les aides à la rédaction === | === Les aides à la rédaction === |