Sieve filter imapflags with "flagvar" not working

Stephan Bosch stephan at rename-it.nl
Sat Mar 3 09:54:34 EET 2018


Op 3/2/2018 om 6:09 PM schreef Konstantinos Tsakiltzidis:
> Following the rfc5232, Sieve Email Filtering: Imap4flags Extension
>
> the following filter doesn't work when the `"flagvar"` part is added
>
> require "imap4flags";
>
> if header :contains "X-Spam" "Yes" {
>
>   setflag "flagvar" "spam";
>
> }

You should be getting an error logged somewhere. Using a flag variable
is not allowed, unless the variables extension is enabled. So, you must
add `require "variables";' for this script to make sense at all.

Regards,

Stephan.




> removing the `"flagvar"` part works as expected
>
>
> # 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.21 (92477967)
> # OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.1 ext4
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> mail_debug = yes
> mail_location = maildir:/var/vmail/%d/%n
> managesieve_notify_capability = mailto
> managesieve_sieve_capability = fileinto reject envelope
> encoded-character vacation subaddress comparator-i;ascii-numeric
> relational regex imap4flags copy include variables body enotify
> environment mailbox date index ihave duplicate mime foreverypart
> extracttext
> namespace inbox {
>   inbox = yes
>   location =
>   mailbox Drafts {
>     special_use = \Drafts
>   }
>   mailbox Junk {
>     special_use = \Junk
>   }
>   mailbox Sent {
>     special_use = \Sent
>   }
>   mailbox "Sent Messages" {
>     special_use = \Sent
>   }
>   mailbox Trash {
>     special_use = \Trash
>   }
>   prefix =
>   separator = .
>   subscriptions = yes
>   type = private
> }
> namespace modulus {
>   list = children
>   location = maildir:/var/vmail/%d/Public:INDEXPVT=~/public/indexes
>   mailbox admin {
>     auto = subscribe
>   }
>   mailbox support {
>     auto = subscribe
>   }
>   mailbox telecoms {
>     auto = subscribe
>   }
>   prefix = Public.
>   separator = .
>   subscriptions = yes
>   type = public
> }
> passdb {
>   driver = pam
> }
> plugin {
>   acl = vfile
>   mail_log_events = flag_change
>   mail_log_fields = box flags uid
>   sieve = ~/dovecot.sieve
>   sieve_before = /var/vmail/global.sieve
>   sieve_dir = ~/sieve
>   sieve_global_dir = /var/vmail/sieve
> }
> protocols = " imap lmtp sieve lmtp"
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     group = mail
>     mode = 0666
>     user = postfix
>   }
>   unix_listener auth-userdb {
>     group = mail
>     mode = 0666
>     user = vmail
>   }
> }
> service imap-login {
>   inet_listener imap {
>     port = 0
>   }
> }
> service lmtp {
>   unix_listener /var/spool/postfix/private/dovecot-lmtp {
>     group = postfix
>     mode = 0600
>     user = postfix
>   }
> }
> service managesieve-login {
>   inet_listener sieve {
>     port = 4190
>   }
>   process_min_avail = 0
>   service_count = 1
>   vsz_limit = 64 M
> }
> service managesieve {
>   process_limit = 1024
> }
> ssl = required
> ssl_cert = </etc/ssl/certs/mail.crt
> ssl_key =  # hidden, use -P to show it
> userdb {
>   driver = passwd
> }
> protocol imap {
>   mail_max_userip_connections = 20
>   mail_plugins = " mail_log notify acl"
>   passdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>   }
>   userdb {
>     args = uid=vmail gid=mail home=/var/vmail/%d/%n
>     driver = static
>     name =
>   }
> }
> protocol lda {
>   mail_plugins = " sieve acl"
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol lmtp {
>   mail_plugins = " sieve acl"
>   postmaster_address = postmaster at modulus.gr
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol doveadm {
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol sieve {
>   mail_max_userip_connections = 10
>   managesieve_implementation_string = Dovecot Pigeonhole
>   managesieve_logout_format = bytes=%i/%o
>   managesieve_max_line_length = 65536
>   passdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>   }
>   userdb {
>     args = uid=vmail gid=mail home=/var/vmail/%d/%n
>     driver = static
>     name =
>   }
> }
>



More information about the dovecot mailing list