Hello Aki;
Thanks a lot for your answer.
Changing the LAYOUT is difficult for us as it will prevent the use of
our migration scripts, balancing, shared storage, backups, etc. . It
will also require an extra step on a very large storage.
I could see that modifying the subscription file (removing the first
line, replacing the TABs with dots) would allow for sustainable use:
backwards compatibility seems to work well and the user will be able to
use this file durably.
This leads to 2 questions:
- would there be any downside to forcing the use of "old style"
subscription files.
- is there a way to set dovecot to create, by default, a subscription
file like this.
Best regards
Julien
Le 03/03/2023 à 09:43, Aki Tuomi a écrit :
On 02/03/2023 16:21 EET Julien Nadal <julien+doveco...@mujik.fr> wrote:
Hello;
We were able to set up shared folders in a cluster (using dovecot as proxy on
dedicated front-end servers, without using director) by following
https://doc.dovecot.org/configuration_manual/shared_mailboxes/cluster_setup/.
Here is our related conf on imap farms (dovecot v2.3.16 on Almalinux):
namespaces:
mail_location = maildir:~/Maildir
namespace default {
inbox = yes
location =
prefix =
separator = /
}
namespace shared {
list = children
location = imapc:~/shared/%%u:INDEXPVT=~/shared-pvt/%%u
prefix = shared/%%u/
separator = /
subscriptions = no
type = shared
}
imapc settings:
imapc_features = fetch-bodystructure fetch-headers rfc822.size search modseq
acl delay-login
imapc_host = XXXXXX
imapc_master_user = %{user}
imapc_password = XXXXXX
imapc_port = XXXXXX
passdb {
args = password=#hidden_use-P_to_show# userdb_namespace/shared/disabled=yes
userdb_acl_user=%{auth_user} allow_nets=XXXXX/XX
driver = static
master = yes
}
dict {
acl-mysql = mysql:/etc/dovecot/conf.d/dovecot-dict-sql.conf.ext
}
This way, a folder is created under ~/ : shared & shared-pvt :
When user A shares a folder with B, B will find ~/shared/userA/sharedfolder
I should mention that the user authentication (backend: mysql) uses the full email address as we are in a multi-tenant context.
So the folder looks like ~/shared/us...@domain.tld/folder
Since then, everything works perfectly, we can share and see the shared folders in the webmail (SOGo).
Unfortunately, accessing these folders through an imap client (tested on Thunderbird and MSOutlook) is impossible because the subscription fails (the folder is listed, but the subscription doesn't seem to do anything).
I could not find any relevant logs but I was able to confirm on the command line: I am
able to view folder with LIST, subscribe with an "OK" output, but the folder is
not listed with LSUB.
So I could see that the subscribtion file in maildir shows incorrect entries:
V 2
Sent
Trash
Drafts
Junk
shared/testuser1@sub domain tld/INBOX/folder
The dots in the folder names are replaced by tabs.
I was able to recover things by editing the file as follows:
Sent
Trash
Drafts
Junk
shared/testus...@sub.domain.tld/INBOX/folder
This means that Maildir++ and V2 subscription can't handle dots in folders.
I found a previous discussion: https://dovecot.org/pipermail/dovecot/2021-January/121233.html
But the final advice can't be applied on our side:
- changing LAYOUT to FS is not possible for us
- we have already migrated the dot separator to slash
- changing the layout only for shared namespaces does not solve the problem
and totally breaks the access to shared folders.
Thanks a lot for your advice
Best regards
Julien
Hi, unfortunately this does not work with maildir++ layout. Only fix is to use
LAYOUT=FS or LAYOUT=index, which you said is not possible for you.
Aki