Would it work better with

 group @namespaces virtual-virtual-english {
   namespace virtual-virtual {
    mail_path = /var/lib/dovecot/virtual/virtual-en
    mailbox All {
      auto = no
      special_use = \All
    }
   }
 }

 [...]

   Thank you, this will be the right direction. This way, I can even
   translate the prefix, too.

   However, I found a bug (I think). Out of the following three scenarios,
   the "namespace within a group" setting doesn't automatically create the
   indices.

   I removed all userdb config and kept only English to minimise the
   reproducer. The dovecot-virtual file was kept intact across the scenarios:

   /var/lib/dovecot/virtual/virtual/en/All:
   *
   -Trash
   -Trash/*
   -Junk
   -Junk/*
     all

   Scenario 1: namespace within a group

   rm -rf the virtual index directory, then start Dovecot with the following
   config:

   group @namespaces-virtual-virtual english {
     namespace virtual-virtual {
       prefix = Virtual/
       separator = /
       mail_driver = virtual
       mail_path = /var/lib/dovecot/virtual/virtual/en
       mail_index_path = %{home}/index/virtual/virtual/en
       namespace_subscriptions = no
       list = yes
       hidden = no

       mailbox All {
         auto = no
         special_use = \All
       }
     }
   }

   @namespaces-virtual-virtual = english

   There are no children under Virtual/:

   a LIST "" *
   * LIST (\Noselect \HasNoChildren) "/" Virtual

   Debug messages:

   Namespace virtual-virtual: type=private, prefix=Virtual/, sep=/, inbox=no,
   hidden=no, list=yes, subscriptions=no
   fs: root=/var/lib/dovecot/virtual/virtual/en,
   index=/var/spool/mail/[...]//index/virtual/virtual/en, indexpvt=,
   control=, inbox=, alt=
   Namespace virtual-virtual: Using permissions from
   /var/lib/dovecot/virtual/virtual/en: mode=0755 gid=default
   Mailbox Virtual: Couldn't open mailbox in list index: Mailbox not found

   Index directory content:

   ./virtual
   ./virtual/en
   ./virtual/en/dovecot.list.index.log

   Scenario 2: namespace without group

   The very same config snippet as above, but without the "group
   @namespaces-virtual-virtual english" and the "@namespaces-virtual-virtual
   = english" lines. Removed the previous, incomplete, index directory, too.

   In this case the listing succeeds:

   a LIST "" *
   * LIST (\Noselect \HasChildren) "/" Virtual
   * LIST (\HasNoChildren \All) "/" Virtual/All

   Debug messages:

   Namespace virtual-virtual: type=private, prefix=Virtual/, sep=/, inbox=no,
   hidden=no, list=yes, subscriptions=no
   fs: root=/var/lib/dovecot/virtual/virtual/en,
   index=/var/spool/mail/[...]//index/virtual/virtual/en, indexpvt=,
   control=, inbox=, alt=
   Namespace virtual-virtual: Using permissions from
   /var/lib/dovecot/virtual/virtual/en: mode=0755 gid=default
   Mailbox Virtual/All: Couldn't open mailbox in list index: Mailbox not
   found
   Mailbox Virtual/All: Mailbox opened
   Mailbox Virtual: Couldn't open mailbox in list index: Mailbox not found
   Mailbox Virtual: Couldn't open mailbox in list index: Mailbox not found
   Mailbox Virtual/All: Couldn't open mailbox in list index: Mailbox no
   longer exists in index
   Mailbox Virtual: Couldn't open mailbox in list index: Mailbox not found

   Index directory content:

   ./en
   ./en/All
   ./en/All/dovecot.index.log
   ./en/dovecot.list.index.log

   Scenario 3: going back to group after created indices

   Here, I didn't remove the index files but re-added the previously removed
   "group..." config lines. In this case the listing succeeds with a lot less
   debug message:

   Namespace virtual-virtual: type=private, prefix=Virtual/, sep=/, inbox=no,
   hidden=no, list=yes, subscriptions=no
   fs: root=/var/lib/dovecot/virtual/virtual/en,
   index=/var/spool/mail/[...]//index/virtual/virtual/en, indexpvt=,
   control=, inbox=, alt=
   Mailbox Virtual: Couldn't open mailbox in list index: Mailbox not found

   Akos
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to