[Dovecot] Migrating with dsync and INBOX.INBOX namespace issue

Nikolai Schupbach nikolai at net24.co.nz
Sun Jul 15 12:39:28 EEST 2012


Just a follow up to this - I used the imapsync perl script and found that it synced with the namespaces correctly:

/usr/local/bin/imapsync --host1 source.server.name --user1 test at test.com --password1 MASKED --host2 dest.server.name --user2 test at test.com --password2 MASKED

Host1 capability: IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS IDLE AUTH=PLAIN UNSELECT
Host2 capability: IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE QUOTA ACL RIGHTS=texk
Host1 separator and prefix: [.][INBOX.]
Host2 separator and prefix: [.][INBOX.]

So there appears to be some problem with namespaces and dsync/imapc.

On 14/07/2012, at 8:29 PM, Nikolai Schupbach wrote:

> I'm working on migrating IMAP users from Mirapoint Message Servers to Dovecot servers. The Mirapoint IMAP server uses INBOX as a namespace for private mailboxes. I created the same namespace in Dovecot, but when I migrate mailboxes dsync seems to ignore/miss the namespace on Mirapoint and I end up with all mailboxes under a INBOX.INBOX hierarchy.
> 
> Mirapoint Source Server
> -----------------------
> * OK server.name Mirapoint IMAP4 3.8.3-GA server ready
> 1 LOGIN test at test.com test
> 1 OK User logged in
> 2 NAMESPACE
> * NAMESPACE (("INBOX." ".")) (("user." ".")) (("" "."))
> 2 OK Completed
> 3 LIST "" *
> * LIST () "." "INBOX"
> * LIST () "." "INBOX.Draft"
> * LIST () "." "INBOX.Sent"
> * LIST () "." "INBOX.Trash"
> 3 OK Completed
> 
> Running Dsync
> -------------
> # doveadm -v -o imapc_host=server.name imapc_user=test at test.com -o imapc_password=test backup -R -u test at test.com imapc:
> dsync(test at test.com): Info: INBOX.INBOX.Sent: only in source (guid=7d3c7eaa71cdf47ee8a1192687cda8cd)
> dsync(test at test.com): Info: INBOX.INBOX.Draft: only in source (guid=a6a03ff3d6ec9066b46013f4affb109a)
> dsync(test at test.com): Info: INBOX.INBOX.Trash: only in source (guid=b36f688eae08506001091708006abe5a)
> dsync(test at test.com): Info: INBOX: only in source (guid=c92f64f79f0d1ed01e6d5b314f04886c)
> 
> Dovecot Destination Server Post Dsync
> -------------------------------------
> * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
> 1 LOGIN test at test.com test
> 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE QUOTA ACL RIGHTS=texk] Logged in
> 2 NAMESPACE
> * NAMESPACE (("INBOX." ".")) NIL NIL
> 2 OK Namespace completed.
> 3 LIST "" *
> * LIST (\HasChildren) "." "INBOX"
> * LIST (\HasNoChildren) "." "INBOX.INBOX.Sent"
> * LIST (\HasNoChildren) "." "INBOX.INBOX.Trash"
> * LIST (\HasNoChildren) "." "INBOX.INBOX.Draft"
> 3 OK List completed.
> 
> I noticed that Mirapoint IMAP also advertises a third empty namespace and I was wondering if this was causing it, but even if I explicitly set -n "INBOX." I still have the same issue.
> 
> Below is my doveconf -n output:
> 
> # 2.1.6: /usr/local/etc/dovecot/dovecot.conf
> # OS: FreeBSD 9.0-RELEASE-p3 amd64  
> auth_cache_negative_ttl = 0
> auth_verbose = yes
> default_vsz_limit = 512 M
> deliver_log_format = subject=%s msgid=%m: %$
> disable_plaintext_auth = no
> imapc_features = rfc822.size
> mail_gid = vmail
> mail_home = /mailstore/domains/%d/%n
> mail_location = mdbox:~/mdbox
> mail_plugins = quota acl mail_log notify
> mail_temp_dir = /var/tmp
> mail_uid = vmail
> managesieve_notify_capability = mailto
> managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave spamtest
> namespace {
>  inbox = yes
>  location = 
>  prefix = INBOX.
>  separator = .
> }
> passdb {
>  args = /usr/local/etc/dovecot/dovecot-ldap-passdb.conf
>  driver = ldap
> }
> plugin {
>  acl = vfile:/usr/local/etc/dovecot/global-acls
>  mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
>  mail_log_fields = uid box msgid size
>  quota = dict:User quota::file:%h/.dovecot-quota
>  quota_warning = storage=95%% quota-warning 95 %u
>  sieve = ~/.dovecot.sieve
>  sieve_extensions = +spamtest
>  sieve_max_redirects = 32
>  sieve_spamtest_max_value = 10
>  sieve_spamtest_status_header = X-Spam-Score
>  sieve_spamtest_status_type = score
> }
> service auth-worker {
>  user = $default_internal_user
> }
> service auth {
>  client_limit = 5420
>  unix_listener auth-userdb {
>    group = vmail
>    mode = 0600
>    user = vmail
>  }
>  user = $default_internal_user
> }
> service imap-login {
>  process_min_avail = 12
>  service_count = 0
>  vsz_limit = 512 M
> }
> service imap {
>  process_limit = 4096
>  vsz_limit = 512 M
> }
> service lmtp {
>  process_min_avail = 12
>  user = vmail
> }
> service pop3-login {
>  process_min_avail = 12
>  service_count = 0
>  vsz_limit = 512 M
> }
> service pop3 {
>  process_limit = 1024
>  vsz_limit = 512 M
> }
> service quota-warning {
>  executable = script /usr/local/bin/quota-warning
>  unix_listener quota-warning {
>    user = vmail
>  }
>  user = vmail
> }
> ssl = no
> userdb {
>  args = /usr/local/etc/dovecot/dovecot-ldap-userdb.conf
>  driver = ldap
> }
> verbose_proctitle = yes
> protocol imap {
>  mail_max_userip_connections = 50
>  mail_plugins = quota acl mail_log notify imap_quota imap_acl
> }
> protocol lmtp {
>  mail_plugins = quota acl mail_log notify sieve
> }
> 
> Any help would be much appreciated.
> 
> Regards, Nikolai.
> 
> 



More information about the dovecot mailing list