Sieve filter doesn't respect mailbox separator

Konstantinos Tsakiltzidis ktsakiltzidis at modulus.gr
Fri Mar 2 18:10:43 EET 2018


namespace separator is '.',
this sieve script incorrectly tries to put the mail inside a mailbox
rather that beside it, for example if the mailbox is named
'example', the mail will be put in the path 'example/.Spam'
instead of 'example.Spam'

require ["fileinto"];
if header :contains "X-Spam" "yes" {
   fileinto "Spam";
}



# 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