| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| filtres_sieve [2025/06/22 20:34] – [Accès via une application utilisatrice] Flaz | filtres_sieve [2025/07/01 17:18] (Version actuelle) – [Interface avancée] Flaz |
|---|
| ==== Interface simplifiée ==== | ==== Interface simplifiée ==== |
| |
| L'interface simplifiée est propre à chaque application. Toutefois, l'objectif est le même : permettre aux utilisatrices de créer des règles écrire de code informatique. Pour ce faire, pas besoin de réinventer l'eau tiède. Elles reprennent le même type d'interface de tri/classement/traitement que l'on a l'habitude de trouver sur un logiciel de gestion de mail (thunderbird, kmail, evolution…). | L'interface simplifiée est propre à chaque application. Toutefois, l'objectif est le même : permettre aux utilisatrices de créer des règles sans écrire de code informatique, sans connaître le langage Sieve. Pour ce faire, pas besoin de réinventer l'eau tiède. Elles reprennent le même type d'interface de tri/classement/traitement que l'on a l'habitude de trouver sur un logiciel de gestion de mail (thunderbird, kmail, evolution…). |
| |
| À la vue de l'interface suivante, bien maline celle qui pourra dire s'il s'agit de créer une règle Sieve sur le serveur ou une règle locale :-D | À la vue de l'interface suivante, bien maline celle qui pourra dire s'il s'agit de créer une règle Sieve sur le serveur ou une règle locale :-D |
| ==== 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 === |