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 = </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@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 =
>    }
> }