Sieve filter imapflags with "flagvar" not working

Larry Rosenman larryrtx at gmail.com
Fri Mar 2 19:13:38 EET 2018


What version of pigeonhole are you using?  This was fixed recently.


-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 214-642-9640             E-Mail: larryrtx at gmail.com
US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106
On 3/2/18, 11:09 AM, "dovecot on behalf of Konstantinos Tsakiltzidis" <dovecot-bounces at dovecot.org on behalf of ktsakiltzidis at modulus.gr> wrote:

    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";
    
    }
    
    
    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