what sieve variables / syntax is available to sieve scripts.

Marc Marc at f1-outsourcing.eu
Sun Sep 25 13:21:51 UTC 2022



1. where can I find all variables like "imap.user" like in mentioned on page[2]

2. I have the impression that variables like "${from}" are all being set from scanning the whole email again seeing these "if matches" statements.
Is that not super inefficient? I would assume that such variables would be set and made available upon the receipt of a message.

3. What is the point of this:
if environment :matches "imap.user" "*" {
  set "username" "${1}";
}
pipe :copy "sa-learn-ham.sh" [ "${username}" ];

Why can't I just use:
pipe :copy "sa-learn-ham.sh" [ "imap.user" ];




[1]
require [ "vnd.dovecot.pipe", "copy", "variables" ];
if header :matches "subject" "*" { set "subject" "${1}"; }
if header :matches "from" "*" { set "from" "${1}"; }
pipe :args [ "USER at DOMAIN.TLD", "${from}", "${subject}" ] :copy :try "jabber_notify.sh" ;
from page

https://wiki.dovecot.org/Pigeonhole/Sieve/Plugins/Pipe

[2]
if environment :matches "imap.user" "*" {
  set "username" "${1}";
}

pipe :copy "sa-learn-spam.sh" [ "${username}" ];

https://doc.dovecot.org/configuration_manual/howto/antispam_with_sieve/#howto-antispam-with-imapsieve



More information about the dovecot mailing list