doveadm mailbox delete not working

Aki Tuomi aki.tuomi at dovecot.fi
Wed Aug 15 09:33:35 EEST 2018


Can you try

doveadm -fjson mailbox list -u user INBOX/*

Aki

On 15.08.2018 09:29, Ralf Becker wrote:
> Am 14.08.18 um 18:51 schrieb Aki Tuomi:
>> Try 
>>
>> doveadm mailbox list -u user INBOX/*
> Hmm, posted that before, it lists all these undeletable mailboxes:
>
> root at ka-nfs-mail:~# doveadm mailbox list  -u <username> 'INBOX/*' | grep
> hbereich
> INBOX/[Fachbereiche
> INBOX/Fachbereiche
> INBOX/hbereiche
> INBOX/hbereiche/LAGen]
> INBOX/hbereiche/LAG
> INBOX/[Fachbereiche
> INBOX/[Fachbereiche/LAGen]
> INBOX/[Fachbereiche]
> INBOX/[Fachbereiche]/LAGen]
> INBOX/[Fachbereiche]/LAGe
>
> When I try deleting it, everything looks ok:
>
> root at ka-nfs-mail:~# doveadm mailbox delete -u <username>
> 'INBOX/Fachbereiche '
> doveadm(<username>): Info: Mailbox deleted: INBOX/Fachbereiche
>
> But listing the mailboxes shows it's still there:
>
> root at ka-nfs-mail:~# doveadm mailbox list  -u <username> 'INBOX/*' 2>&1 |
> grep hbereich
> INBOX/[Fachbereiche
> INBOX/Fachbereiche
> INBOX/hbereiche
> INBOX/hbereiche/LAGen]
> INBOX/hbereiche/LAG
> INBOX/[Fachbereiche
> INBOX/[Fachbereiche/LAGen]
> INBOX/[Fachbereiche]
> INBOX/[Fachbereiche]/LAGen]
> INBOX/[Fachbereiche]/LAGe
>
> Ralf
>
>> Aki
>>
>>> On 14 August 2018 at 19:20 Ralf Becker <rb at egroupware.org> wrote:
>>>
>>>
>>> Hi Aki,
>>>
>>> Am 14.08.18 um 16:42 schrieb Aki Tuomi:
>>>> Hi,
>>>>
>>>> the thing I'm actually looking for is that whether the sync causes the folder to be restored, so it might be a better idea for you to try and spot this from the logs. I assume that as an SP that you are using mail_log plugin, so that might be useful to spot if this happens. You can also try looking at the UIDVALIDITY value of the folder, it usually corresponds to the creation unixtime.
>>> Hmm, I dont get a mailbox status for the folder 'INBOX/Fachbereiche '
>>> (trailing space):
>>>
>>> root at ka-nfs-mail:~# doveadm -Dv mailbox status  -u <username> all
>>> 'INBOX/Fachbereiche '
>>> Debug: Loading modules from directory: /usr/lib/dovecot
>>> Debug: Module loaded: /usr/lib/dovecot/lib01_acl_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/lib10_quota_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/lib15_notify_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/lib20_mail_log_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/lib20_replication_plugin.so
>>> Debug: Loading modules from directory: /usr/lib/dovecot/doveadm
>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_acl_plugin.so
>>> Debug: Skipping module doveadm_expire_plugin, because dlopen() failed:
>>> Error relocating
>>> /usr/lib/dovecot/doveadm/lib10_doveadm_expire_plugin.so:
>>> expire_set_lookup: symbol not found (this is usually intentional, so
>>> just ignore this message)
>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_quota_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
>>> Debug: Skipping module doveadm_fts_plugin, because dlopen() failed:
>>> Error relocating /usr/lib/dovecot/doveadm/lib20_doveadm_fts_plugin.so:
>>> fts_backend_rescan: symbol not found (this is usually intentional, so
>>> just ignore this message)
>>> Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen()
>>> failed: Error relocating
>>> /usr/lib/dovecot/doveadm/libdoveadm_mail_crypt_plugin.so:
>>> mail_crypt_box_get_public_key: symbol not found (this is usually
>>> intentional, so just ignore this message)
>>> doveadm(<username> 43723): Debug: Added userdb setting:
>>> plugin/master_user=<username>
>>> doveadm(<username> 43723): Debug: Added userdb setting:
>>> plugin/userdb_acl_groups=koakram@<domain>,wahlkampfnetzwerk@<domain>,wahlkalender
>>> 2017@<domain>,lgs@<domain>
>>> doveadm(<username> 43723): Debug: Added userdb setting:
>>> plugin/userdb_quota_rule=*:bytes=15728640000
>>> doveadm(<username>): Debug: Effective uid=90, gid=101,
>>> home=/var/dovecot/imap/<domain>/<user>
>>> doveadm(<username>): Debug: Quota root: name=User quota backend=dict
>>> args=:ns=INBOX/:file:/var/dovecot/imap/<domain>/<user>/dovecot-quota
>>> doveadm(<username>): Debug: Quota rule: root=User quota mailbox=*
>>> bytes=107374182400 messages=0
>>> doveadm(<username>): Debug: Quota grace: root=User quota
>>> bytes=10737418240 (10%)
>>> doveadm(<username>): Debug: dict quota: user=<username>,
>>> uri=file:/var/dovecot/imap/<domain>/<user>/dovecot-quota, noenforcing=0
>>> doveadm(<username>): Debug: Namespace inboxes: type=private,
>>> prefix=INBOX/, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=no
>>> location=mdbox:~/mdbox
>>> doveadm(<username>): Debug: fs:
>>> root=/var/dovecot/imap/<domain>/<user>/mdbox, index=, indexpvt=,
>>> control=, inbox=, alt=
>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>> doveadm(<username>): Debug: acl: acl username = <username>
>>> doveadm(<username>): Debug: acl: owner = 1
>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>> doveadm(<username>): Debug: Namespace users: type=shared,
>>> prefix=user/%n/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=no
>>> location=mdbox:%h/mdbox:INDEXPVT=~/shared/%u
>>> doveadm(<username>): Debug: shared: root=/run/dovecot, index=,
>>> indexpvt=, control=, inbox=, alt=
>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>> doveadm(<username>): Debug: acl: acl username = <username>
>>> doveadm(<username>): Debug: acl: owner = 0
>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>> doveadm(<username>): Debug: Namespace subs: type=private, prefix=,
>>> sep=/, inbox=no, hidden=yes, list=no, subscriptions=yes
>>> location=mdbox:~/mdbox
>>> doveadm(<username>): Debug: fs:
>>> root=/var/dovecot/imap/<domain>/<user>/mdbox, index=, indexpvt=,
>>> control=, inbox=, alt=
>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>> doveadm(<username>): Debug: acl: acl username = <username>
>>> doveadm(<username>): Debug: acl: owner = 1
>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>> doveadm(<username>): Debug: quota: quota_over_flag check:
>>> quota_over_script unset - skipping
>>> doveadm(<username>): Debug: INBOX/Fachbereiche : Mailbox opened because:
>>> mailbox status
>>> doveadm(<username>): Error: Mailbox INBOX/Fachbereiche : Failed to
>>> lookup mailbox status: Mailbox doesn't exist: INBOX/Fachbereiche
>>>
>>> While mailbox list still lists it:
>>>
>>> root at ka-nfs-mail:~# doveadm -Dv mailbox list  -u <username> 
>>> 'INBOX/Fachbereiche '
>>> Debug: Loading modules from directory: /usr/lib/dovecot
>>> Debug: Module loaded: /usr/lib/dovecot/lib01_acl_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/lib10_quota_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/lib15_notify_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/lib20_mail_log_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/lib20_replication_plugin.so
>>> Debug: Loading modules from directory: /usr/lib/dovecot/doveadm
>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_acl_plugin.so
>>> Debug: Skipping module doveadm_expire_plugin, because dlopen() failed:
>>> Error relocating
>>> /usr/lib/dovecot/doveadm/lib10_doveadm_expire_plugin.so:
>>> expire_set_lookup: symbol not found (this is usually intentional, so
>>> just ignore this message)
>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_quota_plugin.so
>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
>>> Debug: Skipping module doveadm_fts_plugin, because dlopen() failed:
>>> Error relocating /usr/lib/dovecot/doveadm/lib20_doveadm_fts_plugin.so:
>>> fts_backend_rescan: symbol not found (this is usually intentional, so
>>> just ignore this message)
>>> Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen()
>>> failed: Error relocating
>>> /usr/lib/dovecot/doveadm/libdoveadm_mail_crypt_plugin.so:
>>> mail_crypt_box_get_public_key: symbol not found (this is usually
>>> intentional, so just ignore this message)
>>> doveadm(<username> 46127): Debug: Added userdb setting:
>>> plugin/master_user=<username>
>>> doveadm(<username> 46127): Debug: Added userdb setting:
>>> plugin/userdb_acl_groups=koakram@<domain>,wahlkampfnetzwerk@<domain>,wahlkalender
>>> 2017@<domain>,lgs@<domain>
>>> doveadm(<username> 46127): Debug: Added userdb setting:
>>> plugin/userdb_quota_rule=*:bytes=15728640000
>>> doveadm(<username>): Debug: Effective uid=90, gid=101,
>>> home=/var/dovecot/imap/<domain>/<user>
>>> doveadm(<username>): Debug: Quota root: name=User quota backend=dict
>>> args=:ns=INBOX/:file:/var/dovecot/imap/<domain>/<user>/dovecot-quota
>>> doveadm(<username>): Debug: Quota rule: root=User quota mailbox=*
>>> bytes=107374182400 messages=0
>>> doveadm(<username>): Debug: Quota grace: root=User quota
>>> bytes=10737418240 (10%)
>>> doveadm(<username>): Debug: dict quota: user=<username>,
>>> uri=file:/var/dovecot/imap/<domain>/<user>/dovecot-quota, noenforcing=0
>>> doveadm(<username>): Debug: Namespace inboxes: type=private,
>>> prefix=INBOX/, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=no
>>> location=mdbox:~/mdbox
>>> doveadm(<username>): Debug: fs:
>>> root=/var/dovecot/imap/<domain>/<user>/mdbox, index=, indexpvt=,
>>> control=, inbox=, alt=
>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>> doveadm(<username>): Debug: acl: acl username = <username>
>>> doveadm(<username>): Debug: acl: owner = 1
>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>> doveadm(<username>): Debug: Namespace users: type=shared,
>>> prefix=user/%n/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=no
>>> location=mdbox:%h/mdbox:INDEXPVT=~/shared/%u
>>> doveadm(<username>): Debug: shared: root=/run/dovecot, index=,
>>> indexpvt=, control=, inbox=, alt=
>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>> doveadm(<username>): Debug: acl: acl username = <username>
>>> doveadm(<username>): Debug: acl: owner = 0
>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>> doveadm(<username>): Debug: Namespace subs: type=private, prefix=,
>>> sep=/, inbox=no, hidden=yes, list=no, subscriptions=yes
>>> location=mdbox:~/mdbox
>>> doveadm(<username>): Debug: fs:
>>> root=/var/dovecot/imap/<domain>/<user>/mdbox, index=, indexpvt=,
>>> control=, inbox=, alt=
>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>> doveadm(<username>): Debug: acl: acl username = <username>
>>> doveadm(<username>): Debug: acl: owner = 1
>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>> doveadm(<username>): Debug: quota: quota_over_flag check:
>>> quota_over_script unset - skipping
>>> INBOX/Fachbereiche
>>>
>>> Is there some kind of index for existing mailboxes which needs rebuilding?
>>>
>>> Ralf
>>>
>>>> Aki
>>>>
>>>>> On 14 August 2018 at 17:18 Ralf Becker <rb at egroupware.org> wrote:
>>>>>
>>>>>
>>>>> Hi Aki,
>>>>>
>>>>> thanks for looking into this :)
>>>>>
>>>>> Am 14.08.18 um 15:15 schrieb Aki Tuomi:
>>>>>> can you turn on mail_debug=yes and run doveadm -Dv mailbox delete and
>>>>>> provide output and logs from both servers?
>>>>> root at ka-nfs-mail:~# doveadm -Dv mailbox delete  -u h 'INBOX/Fachbereiche '
>>>>> Debug: Loading modules from directory: /usr/lib/dovecot
>>>>> Debug: Module loaded: /usr/lib/dovecot/lib01_acl_plugin.so
>>>>> Debug: Module loaded: /usr/lib/dovecot/lib10_quota_plugin.so
>>>>> Debug: Module loaded: /usr/lib/dovecot/lib15_notify_plugin.so
>>>>> Debug: Module loaded: /usr/lib/dovecot/lib20_mail_log_plugin.so
>>>>> Debug: Module loaded: /usr/lib/dovecot/lib20_replication_plugin.so
>>>>> Debug: Loading modules from directory: /usr/lib/dovecot/doveadm
>>>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_acl_plugin.so
>>>>> Debug: Skipping module doveadm_expire_plugin, because dlopen() failed:
>>>>> Error relocating
>>>>> /usr/lib/dovecot/doveadm/lib10_doveadm_expire_plugin.so:
>>>>> expire_set_lookup: symbol not found (this is usually intentional, so
>>>>> just ignore this message)
>>>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_quota_plugin.so
>>>>> Debug: Module loaded: /usr/lib/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
>>>>> Debug: Skipping module doveadm_fts_plugin, because dlopen() failed:
>>>>> Error relocating /usr/lib/dovecot/doveadm/lib20_doveadm_fts_plugin.so:
>>>>> fts_backend_rescan: symbol not found (this is usually intentional, so
>>>>> just ignore this message)
>>>>> Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen()
>>>>> failed: Error relocating
>>>>> /usr/lib/dovecot/doveadm/libdoveadm_mail_crypt_plugin.so:
>>>>> mail_crypt_box_get_public_key: symbol not found (this is usually
>>>>> intentional, so just ignore this message)
>>>>> doveadm(<username>): Debug: auth PASS input:
>>>>> doveadm(<username> 32679): Debug: auth USER input: <username>
>>>>> userdb_quota_rule=*:bytes=15728640000 master_user=<username>
>>>>> userdb_acl_groups=koakram@<domain>,wahlkampfnetzwerk@<domain>,wahlkalender
>>>>> 2017@<domain>,lgs@<domain> home=/var/dovecot/imap/<domain>/<user>
>>>>> doveadm(<username> 32679): Debug: Added userdb setting:
>>>>> plugin/master_user=<username>
>>>>> doveadm(<username> 32679): Debug: Added userdb setting:
>>>>> plugin/userdb_acl_groups=koakram@<domain>,wahlkampfnetzwerk@<domain>,wahlkalender
>>>>> 2017@<domain>,lgs@<domain>
>>>>> doveadm(<username> 32679): Debug: Added userdb setting:
>>>>> plugin/userdb_quota_rule=*:bytes=15728640000
>>>>> doveadm(<username>): Debug: Effective uid=90, gid=101,
>>>>> home=/var/dovecot/imap/<domain>/<user>
>>>>> doveadm(<username>): Debug: Quota root: name=User quota backend=dict
>>>>> args=:ns=INBOX/:file:/var/dovecot/imap/<domain>/<user>/dovecot-quota
>>>>> doveadm(<username>): Debug: Quota rule: root=User quota mailbox=*
>>>>> bytes=107374182400 messages=0
>>>>> doveadm(<username>): Debug: Quota grace: root=User quota
>>>>> bytes=10737418240 (10%)
>>>>> doveadm(<username>): Debug: dict quota: user=<username>,
>>>>> uri=file:/var/dovecot/imap/<domain>/<user>/dovecot-quota, noenforcing=0
>>>>> doveadm(<username>): Debug: Namespace inboxes: type=private,
>>>>> prefix=INBOX/, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=no
>>>>> location=mdbox:~/mdbox
>>>>> doveadm(<username>): Debug: fs:
>>>>> root=/var/dovecot/imap/<domain>/<user>/mdbox, index=, indexpvt=,
>>>>> control=, inbox=, alt=
>>>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>>>> doveadm(<username>): Debug: acl: acl username = <username>
>>>>> doveadm(<username>): Debug: acl: owner = 1
>>>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>>>> doveadm(<username>): Debug: Namespace users: type=shared,
>>>>> prefix=user/%n/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=no
>>>>> location=mdbox:%h/mdbox:INDEXPVT=~/shared/%u
>>>>> doveadm(<username>): Debug: shared: root=/run/dovecot, index=,
>>>>> indexpvt=, control=, inbox=, alt=
>>>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>>>> doveadm(<username>): Debug: acl: acl username = <username>
>>>>> doveadm(<username>): Debug: acl: owner = 0
>>>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>>>> doveadm(<username>): Debug: Namespace subs: type=private, prefix=,
>>>>> sep=/, inbox=no, hidden=yes, list=no, subscriptions=yes
>>>>> location=mdbox:~/mdbox
>>>>> doveadm(<username>): Debug: fs:
>>>>> root=/var/dovecot/imap/<domain>/<user>/mdbox, index=, indexpvt=,
>>>>> control=, inbox=, alt=
>>>>> doveadm(<username>): Debug: acl: initializing backend with data: vfile
>>>>> doveadm(<username>): Debug: acl: acl username = <username>
>>>>> doveadm(<username>): Debug: acl: owner = 1
>>>>> doveadm(<username>): Debug: acl vfile: Global ACLs disabled
>>>>> doveadm(<username>): Debug: quota: quota_over_flag check:
>>>>> quota_over_script unset - skipping
>>>>> doveadm(<username>): Debug: INBOX/Fachbereiche : Mailbox opened because:
>>>>> mailbox delete
>>>>> doveadm(<username>): Debug: acl vfile: file
>>>>> /var/dovecot/imap/<domain>/<user>/mdbox/mailboxes/Fachbereiche
>>>>> /dbox-Mails/dovecot-acl not found
>>>>> doveadm(<username>): Debug: Namespace INBOX/: Using permissions from
>>>>> /var/dovecot/imap/<domain>/<user>/mdbox: mode=0700 gid=default
>>>>> doveadm(<username>): Debug: replication: Replication requested by
>>>>> 'mailbox delete', priority=1
>>>>> doveadm(<username>): Info: Mailbox deleted: INBOX/Fachbereiche
>>>>>
>>>>> Output and logs are from the (less loaded) standby/backup node. I can
>>>>> get the logs from the active node tonight.
>>>>>
>>>>> I had to remove some folder-names for privacy reasons, but they all have
>>>>> the same output in the logs.
>>>>>
>>>>> Ralf
>>>>>
>>>>>> ---
>>>>>> Aki Tuomi
>>>>>> Dovecot oy
>>>>>>
>>>>>> -------- Original message --------
>>>>>> From: Ralf Becker <rb at egroupware.org>
>>>>>> Date: 14/08/2018 16:13 (GMT+02:00)
>>>>>> To: dovecot at dovecot.org
>>>>>> Subject: doveadm mailbox delete not working
>>>>>>
>>>>>> I have a user who has several folders in his mailbox, which we can not
>>>>>> delete, neither via IMAP nor via doveadm:
>>>>>>
>>>>>> root at ka-nfs-mail:~# doveadm mailbox list -u <username> | grep hbereiche
>>>>>> | cat -v
>>>>>> INBOX/[Fachbereiche ^M
>>>>>> INBOX/Fachbereiche ^M
>>>>>> INBOX/hbereiche^M
>>>>>> INBOX/hbereiche/LAGen]^M
>>>>>> INBOX/hbereiche/LAG^M
>>>>>> INBOX/[Fachbereiche^M
>>>>>> INBOX/[Fachbereiche/LAGen]^M
>>>>>> INBOX/[Fachbereiche]^M
>>>>>> INBOX/[Fachbereiche]/LAGen]^M
>>>>>> INBOX/[Fachbereiche]/LAGe^M
>>>>>> root at ka-nfs-mail:~# doveadm mailbox delete  -u <username>
>>>>>> 'INBOX/Fachbereiche '
>>>>>> doveadm(<username>): Info: Mailbox deleted: INBOX/Fachbereiche
>>>>>> root at ka-nfs-mail:~# doveadm mailbox list -u <username>| grep hbereiche |
>>>>>> cat -v
>>>>>> INBOX/[Fachbereiche ^M
>>>>>> INBOX/Fachbereiche ^M
>>>>>> INBOX/hbereiche^M
>>>>>> INBOX/hbereiche/LAGen]^M
>>>>>> INBOX/hbereiche/LAG^M
>>>>>> INBOX/[Fachbereiche^M
>>>>>> INBOX/[Fachbereiche/LAGen]^M
>>>>>> INBOX/[Fachbereiche]^M
>>>>>> INBOX/[Fachbereiche]/LAGen]^M
>>>>>> INBOX/[Fachbereiche]/LAGe^M
>>>>>>
>>>>>> As far as I tried none of these folders can be deleted (I added single
>>>>>> quotes for trailing space and tried to delete subfolders first).
>>>>>>
>>>>>> Mailbox is in mdbox format on a replication pair under Dovecot 2.2.36
>>>>>> and I tried both nodes of the replication with same result.
>>>>>>
>>>>>> Any ideas?
>>>>>>
>>>>>> Ralf
>>>>>>
>>>>>> -- 
>>>>>> Ralf Becker
>>>>>> EGroupware GmbH [www.egroupware.org]
>>>>>> Handelsregister HRB Kaiserslautern 3587
>>>>>> Geschäftsführer Birgit und Ralf Becker
>>>>>> Leibnizstr. 17, 67663 Kaiserslautern, Germany
>>>>>> Telefon +49 631 31657-0
>>>>>>
>>>>>>
>>>>> -- 
>>>>> Ralf Becker
>>>>> EGroupware GmbH [www.egroupware.org]
>>>>> Handelsregister HRB Kaiserslautern 3587
>>>>> Geschäftsführer Birgit und Ralf Becker
>>>>> Leibnizstr. 17, 67663 Kaiserslautern, Germany
>>>>> Telefon +49 631 31657-0
>>>>>
>>> -- 
>>> Ralf Becker
>>> EGroupware GmbH [www.egroupware.org]
>>> Handelsregister HRB Kaiserslautern 3587
>>> Geschäftsführer Birgit und Ralf Becker
>>> Leibnizstr. 17, 67663 Kaiserslautern, Germany
>>> Telefon +49 631 31657-0
>>>
>>>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://dovecot.org/pipermail/dovecot/attachments/20180815/01104544/attachment.sig>


More information about the dovecot mailing list