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
Ákos
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