Sieve filter imapflags with "flagvar" not working
Stephan Bosch
stephan at rename-it.nl
Mon Mar 5 17:38:52 EET 2018
Op 5-3-2018 om 11:47 schreef Konstantinos Tsakiltzidis:
> tried also with `require "variables"` doesn't seem to work,
>
> the flag is not added at all
What is your full script? Just adding flags to a variable is not going
to do anything.
Either leave out the variable:
setflag "spam";
In which case it applies implicitly to subsequent fileinto and
(implicit) keep.
Or use the "${flagvar}" variable in a fileinto or keep command:
fileinto :flags "${flagvar}" "Mailbox";
Or
keep :flags "${flagvar}";
Regards,
Stephan.
>
>
> 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