subscription, dots and subscribe to shared folder.

Julien Nadal julien+dovecotnl at mujik.fr
Fri Mar 3 10:28:40 UTC 2023


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+dovecotnl at 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/usera at 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 at 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/testuser1 at 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


More information about the dovecot mailing list