Re: Sieve filter doesn't respect mailbox separator
The problem seems to be my Public/.. mailboxes, and the home path of each one. This apparently is not a bug, just a very hard configuration detail. On 03/06/2018 04:15 PM, Jungersen, Danjel - Jungersen Grafisk ApS wrote: On 2 Mar 2018 at 18:10, Konstantinos Tsakiltzidis wrote: > 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"; > } Could it be related to the fact that in one line you say "Junk" (In dovecot) and in another you say "Spam" (In sieve) ?? //Danjel > > > > # 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 = 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 = postmas...@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 =
Re: Sieve filter doesn't respect mailbox separator
On 2 Mar 2018 at 18:10, Konstantinos Tsakiltzidis wrote: > 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"; > } Could it be related to the fact that in one line you say "Junk" (In dovecot) and in another you say "Spam" (In sieve) ?? //Danjel > > > > # 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 = > 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 = postmas...@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 = >
Sieve filter doesn't respect mailbox separator
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 = 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 = postmas...@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 = } }