Sieve filter imapflags with "flagvar" not working

Konstantinos Tsakiltzidis ktsakiltzidis at modulus.gr
Mon Mar 5 12:47:35 EET 2018


tried also with `require "variables"` doesn't seem to work,

the flag is not added at all


On 03/03/2018 09:54 AM, Stephan Bosch wrote:
> 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