Re: Sieve filter doesn't respect mailbox separator

2018-03-08 Thread Konstantinos Tsakiltzidis
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

2018-03-06 Thread Jungersen, Danjel - Jungersen Grafisk ApS



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

2018-03-02 Thread Konstantinos Tsakiltzidis

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