Re: Shared mailboxes, index files and 'per-user-seen' flags

2018-06-07 Thread Marco Giunta
Hi Thomas,
it is a known problem:

  https://www.dovecot.org/pipermail/dovecot/2018-February/111057.html

Try the solution suggested in above mail; it works for me.

Thanks,
  Marco

On 2018-06-06 13:53, Thomas Robers wrote:
> Hello,
> 
> i have a dovecot server version 2.3.1 under CentOS 6.9 and we're
> using shared mailboxes with index files shared. With this configuration
> I can see a lot of error messages like:
> 
>    Jun  6 13:20:31 mail dovecot: Error: imap(us...@tutech.de)<4513>
>    : /export/home/imap/us...@tutech.de/shared
>    /us...@tutech.de/folder/dovecot.index.pvt view is inconsistent
> 
> In 10-mail.conf the location setting is:
> 
>    location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u
> 
> I thought setting the index files to "not shared" might help to
> get rid of the errors, so I changed the setting to:
> 
>    location = maildir:%%h/Maildir:INDEX=%h/shared/%%u:INDEXPVT=%h
>    /shared/%%u
> 
> like it's mentioned in the Dovecot wiki. But that doesn't work as
> I expected, because the 'per-user-seen' flags do not work correctly
> anymore, i think. If UserA, who has UserB as shared mailbox,
> changes the seen flags of UserBs INBOX, UserBs seen flags are also
> changed. The other way, if UserB changes seen flags in his INBOX
> they are not changed in the shared view of UserA. Is this the
> supposed way to work  or do i have an error in the configuration?
> 
> Any help is appreciated.
> 
> Thanks, Thomas.
> 
> Here's my currently used configuration:
> 
> # 2.3.1 (c5a5c0c82): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.5.devel (61b47828)
> # OS: Linux 2.6.32-696.23.1.el6.x86_64 x86_64 CentOS release 6.9 (Final)
> ext4
> # Hostname: mail.tutech.de
> auth_master_user_separator = *
> auth_mechanisms = plain login
> auth_verbose = yes
> disable_plaintext_auth = no
> doveadm_password =  # hidden, use -P to show it
> doveadm_port = 12345
> imap_max_line_length = 2 M
> mail_debug = yes
> mail_location = maildir:/export/home/imap/%Lu/Maildir
> mail_plugins = acl zlib mail_log notify
> mail_prefetch_count = 1
> mailbox_idle_check_interval = 10 secs
> 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 {
>   hidden = no
>   ignore_on_failure = no
>   inbox = no
>   list = children
>   location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u
>   prefix = shared/%%u/
>   separator = /
>   subscriptions = yes
>   type = shared
> }
> namespace inbox {
>   hidden = no
>   inbox = yes
>   list = 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 = INBOX/
>   separator = /
>   type = private
> }
> 
> passdb {
>   args = /etc/dovecot/master-users
>   driver = passwd-file
>   master = yes
> }
> passdb {
>   args = /etc/dovecot/dovecot-ldap.conf.ext
>   driver = ldap
> }
> plugin {
>   acl = vfile:/etc/dovecot/global-acls:cache_secs=300
>   acl_shared_dict = file:/export/home/shared-db/shared-mailboxes
>   mail_log_events = append delete undelete expunge copy mailbox_delete
> mailbox_rename flag_change
>   mail_log_fields = uid box msgid size from flags
>   mail_replica = tcp:mail2.tutech.de
>   sieve = ~/.dovecot.sieve
>   sieve_dir = ~/sieve
>   sieve_global = /var/lib/dovecot/sieve/global/
>   sieve_user_log = ~/.dovecot.sieve.log
>   zlib_save = gz
>   zlib_save_level = 6
> }
> protocols = imap pop3 lmtp sieve sieve
> service aggregator {
>   fifo_listener replication-notify-fifo {
>     mode = 0666
>     user = vmail
>   }
>   unix_listener replication-notify {
>     mode = 0666
>     user = vmail
>   }
> }
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     mode = 0666
>   }
>   unix_listener auth-userdb {
>     group = vmail
>     mode = 0660
>     user = vmail
>   }
> }
> service config {
>   unix_listener config {
>     user = vmail
>   }
> }
> service doveadm {
>   inet_listener {
>     port = 12345
>   }
>   user = vmail
> }
> service imap-login {
>   inet_listener imaps {
>     port = 993
>     ssl = yes
>   }
>   process_limit = 500
>   process_min_avail = 20
> }
> service imap {
>   executable = imap
> }
> service lmtp {
>   inet_listener lmtp {
>     address = 127.0.0.1
>     port = 24
>   }
> }
> service managesieve-login {
>   inet_listener sieve {
>     port = 4190
>   }
>   inet_listener sieve_deprecated {
>     port = 2000
>   }
> }
> service pop3-login {
>   inet_listener pop3s {
>     port = 995
>     ssl = yes
>   }
> }
> service pop3 {
>   executable = pop3
> }
> service replicator {
>   unix_listener replicator-doveadm {
>     mode = 0666
>  

Shared mailboxes, index files and 'per-user-seen' flags

2018-06-06 Thread Thomas Robers

Hello,

i have a dovecot server version 2.3.1 under CentOS 6.9 and we're
using shared mailboxes with index files shared. With this configuration
I can see a lot of error messages like:

   Jun  6 13:20:31 mail dovecot: Error: imap(us...@tutech.de)<4513>
   : /export/home/imap/us...@tutech.de/shared
   /us...@tutech.de/folder/dovecot.index.pvt view is inconsistent

In 10-mail.conf the location setting is:

   location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u

I thought setting the index files to "not shared" might help to
get rid of the errors, so I changed the setting to:

   location = maildir:%%h/Maildir:INDEX=%h/shared/%%u:INDEXPVT=%h
   /shared/%%u

like it's mentioned in the Dovecot wiki. But that doesn't work as
I expected, because the 'per-user-seen' flags do not work correctly
anymore, i think. If UserA, who has UserB as shared mailbox,
changes the seen flags of UserBs INBOX, UserBs seen flags are also
changed. The other way, if UserB changes seen flags in his INBOX
they are not changed in the shared view of UserA. Is this the
supposed way to work  or do i have an error in the configuration?

Any help is appreciated.

Thanks, Thomas.

Here's my currently used configuration:

# 2.3.1 (c5a5c0c82): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.devel (61b47828)
# OS: Linux 2.6.32-696.23.1.el6.x86_64 x86_64 CentOS release 6.9 (Final) 
ext4

# Hostname: mail.tutech.de
auth_master_user_separator = *
auth_mechanisms = plain login
auth_verbose = yes
disable_plaintext_auth = no
doveadm_password =  # hidden, use -P to show it
doveadm_port = 12345
imap_max_line_length = 2 M
mail_debug = yes
mail_location = maildir:/export/home/imap/%Lu/Maildir
mail_plugins = acl zlib mail_log notify
mail_prefetch_count = 1
mailbox_idle_check_interval = 10 secs
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 {
  hidden = no
  ignore_on_failure = no
  inbox = no
  list = children
  location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u
  prefix = shared/%%u/
  separator = /
  subscriptions = yes
  type = shared
}
namespace inbox {
  hidden = no
  inbox = yes
  list = 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 = INBOX/
  separator = /
  type = private
}

passdb {
  args = /etc/dovecot/master-users
  driver = passwd-file
  master = yes
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  acl = vfile:/etc/dovecot/global-acls:cache_secs=300
  acl_shared_dict = file:/export/home/shared-db/shared-mailboxes
  mail_log_events = append delete undelete expunge copy mailbox_delete 
mailbox_rename flag_change

  mail_log_fields = uid box msgid size from flags
  mail_replica = tcp:mail2.tutech.de
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_global = /var/lib/dovecot/sieve/global/
  sieve_user_log = ~/.dovecot.sieve.log
  zlib_save = gz
  zlib_save_level = 6
}
protocols = imap pop3 lmtp sieve sieve
service aggregator {
  fifo_listener replication-notify-fifo {
mode = 0666
user = vmail
  }
  unix_listener replication-notify {
mode = 0666
user = vmail
  }
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
mode = 0666
  }
  unix_listener auth-userdb {
group = vmail
mode = 0660
user = vmail
  }
}
service config {
  unix_listener config {
user = vmail
  }
}
service doveadm {
  inet_listener {
port = 12345
  }
  user = vmail
}
service imap-login {
  inet_listener imaps {
port = 993
ssl = yes
  }
  process_limit = 500
  process_min_avail = 20
}
service imap {
  executable = imap
}
service lmtp {
  inet_listener lmtp {
address = 127.0.0.1
port = 24
  }
}
service managesieve-login {
  inet_listener sieve {
port = 4190
  }
  inet_listener sieve_deprecated {
port = 2000
  }
}
service pop3-login {
  inet_listener pop3s {
port = 995
ssl = yes
  }
}
service pop3 {
  executable = pop3
}
service replicator {
  unix_listener replicator-doveadm {
mode = 0666
  }
}
ssl = required
ssl_cert =