[Dovecot] dsync migration with preserving pop3 uidl

Tomáš Herceg tomas.herceg at stable.cz
Thu May 24 13:17:00 EEST 2012


Hi all,
I'm trying to migrate messages from icewarp (merak) mailserver to dovecot via
dsync, IMAP migration is looking fine, but I'm unable to migrate pop3 uidls from
originating server, probably is something wrong with configuration, but I don't
know what. The only documentation i found is on the wiki:
http://wiki2.dovecot.org/Migration/Dsync where is bad writen mail_plugins =
pop3-migration, i corrected it to mail_plugins = pop3_migration, but it still
didn't work, here is my configuration:

dovecot --version
2.1.5

dovecot -n
# 2.1.5: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-220.13.1.el6.centos.plus.x86_64 x86_64 CentOS release 6.2 (Final)
auth_mechanisms = PLAIN LOGIN
dict {
  acl = mysql:/etc/dovecot/dovecot-share-folder.conf
  expire = db:/var/lib/dovecot/expire/expire.db
  quotadict = mysql:/etc/dovecot/dovecot-used-quota.conf
}
disable_plaintext_auth = no
imapc_features = rfc822.size
imapc_host = **originating_server**
last_valid_uid = 500
listen = *
log_path = /var/log/dovecot.log
mail_fsync = never
mail_gid = 500
mail_location = maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/
mail_uid = 500
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 ma
ilbox date ihave
namespace {
  inbox = yes
  location =
  prefix =
  separator = /
  type = private
}
namespace {
  list = children
  location = maildir:/%%Lh/Maildir/:INDEX=/%%Lh/Maildir/Shared/%%u
  prefix = Shared/%%u/
  separator = /
  subscriptions = yes
  type = shared
}
namespace {
  hidden = yes
  list = yes
  location = pop3c:
  prefix = POP3/
}
passdb {
  args = /etc/dovecot/dovecot-mysql.conf
  driver = sql
}
plugin {
  acl = vfile
  acl_shared_dict = proxy::acl
  auth_socket_path = /var/run/dovecot/auth-master
  autocreate = INBOX
  autocreate2 = Sent
  autocreate3 = Trash
  autocreate4 = Drafts
  autocreate5 = Spam
  autosubscribe = INBOX
  autosubscribe2 = Sent
  autosubscribe3 = Trash
  autosubscribe4 = Drafts
  autosubscribe5 = Spam
  expire = Trash 7 Trash/* 7 Spam 30
  expire_dict = proxy::expire
  pop3_migration_mailbox = POP3/INBOX
  quota = dict:user::proxy::quotadict
  quota_rule = *:storage=1G
  quota_warning = storage=85%% quota-warning 85 %u
  quota_warning2 = storage=90%% quota-warning 90 %u
  quota_warning3 = storage=95%% quota-warning 95 %u
  sieve = /%Lh/sieve/dovecot.sieve
  sieve_dir = /%Lh/sieve
  sieve_global_dir = /home/mail/sieve
  sieve_global_path = /home/mail/sieve/dovecot.sieve
  zlib_save = bz2
  zlib_save_level = 9
}
pop3c_host = **originating_server**
protocols = pop3 imap sieve
service auth {
  unix_listener /var/spool/postfix/dovecot-auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  unix_listener auth-master {
    group = vmail
    mode = 0666
    user = vmail
  }
}
service dict {
  unix_listener dict {
    group = vmail
    mode = 0660
    user = vmail
  }
}
service quota-warning {
  executable = script /usr/local/bin/dovecot-quota-warning.sh
  unix_listener quota-warning {
    group = vmail
    mode = 0660
    user = vmail
  }
}
ssl_cert = </etc/pki/tls/certs/iRedMail_CA.pem
ssl_key = </etc/pki/tls/private/iRedMail.key
userdb {
  args = /etc/dovecot/dovecot-mysql.conf
  driver = sql
}
protocol lda {
  auth_socket_path = /var/run/dovecot/auth-master
  lda_mailbox_autocreate = yes
  log_path = /var/log/sieve.log
  mail_plugins = quota sieve autocreate zlib
  postmaster_address = root
}
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep
  mail_plugins = quota imap_quota autocreate zlib
}
protocol pop3 {
  mail_plugins = quota zlib
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol doveadm {
  mail_plugins = pop3_migration
}

I'm runnig dsync this way:
/usr/bin/time -f "%E" doveadm -vD -o imapc_user=test1 at irock.cz -o
imapc_password=***** backup -u test1 at irock.cz -f -R imapc:/tmp-ram/imapc-test1

doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot/doveadm
doveadm(root): Debug: Skipping module doveadm_acl_plugin, because dlopen()
failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so: undefined
symbol: acl_user_module (this is usually intention
al, so just ignore this message)
doveadm(root): Debug: Skipping module doveadm_expire_plugin, because dlopen()
failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_expire_plugin.so: undefined
symbol: expire_set_lookup (this is usually i
ntentional, so just ignore this message)
doveadm(root): Debug: Skipping module doveadm_quota_plugin, because dlopen()
failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so: undefined
symbol: quota_user_module (this is usually int
entional, so just ignore this message)
doveadm(root): Debug: Skipping module doveadm_zlib_plugin, because dlopen()
failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_zlib_plugin.so: undefined
symbol: i_stream_create_deflate (this is usually intentional, so just ignore
this message)
doveadm(root): Debug: Skipping module doveadm_fts_lucene_plugin, because
dlopen() failed: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.so:
undefined symbol: lucene_index_deinit (this is usually intentional, so just
ignore this message)
doveadm(root): Debug: Skipping module doveadm_fts_plugin, because dlopen()
failed: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_plugin.so: undefined
symbol: fts_list_backend (this is usually intentional, so just ignore this message)
doveadm(test1 at irock.cz): Debug: Added userdb setting:
plugin/quota_rule=*:bytes=20971520000
doveadm(test1 at irock.cz): Debug: Effective uid=500, gid=500,
home=/home/mail/i/irock.cz/test1/
doveadm(test1 at irock.cz): Debug: Namespace : type=private, prefix=, sep=/,
inbox=yes, hidden=no, list=yes, subscriptions=yes
location=maildir://home/mail/i/irock.cz/test1//Maildir/:INDEX=//home/mail/i/irock.cz/test1//Maildir/
doveadm(test1 at irock.cz): Debug: maildir++:
root=//home/mail/i/irock.cz/test1//Maildir, index=, control=,
inbox=//home/mail/i/irock.cz/test1//Maildir, alt=
doveadm(test1 at irock.cz): Debug: Namespace : type=shared, prefix=Shared/%u/,
sep=/, inbox=no, hidden=no, list=children, subscriptions=yes
location=maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/Shared/%u
doveadm(test1 at irock.cz): Debug: shared: root=/var/run/dovecot, index=, control=,
inbox=, alt=
doveadm(test1 at irock.cz): Debug: Namespace : type=private, prefix=POP3/, sep=,
inbox=no, hidden=yes, list=yes, subscriptions=yes location=pop3c:
doveadm(test1 at irock.cz): Debug: fs: root=, index=, control=, inbox=, alt=
dsync(test1 at irock.cz): Debug: Effective uid=500, gid=500,
home=/home/mail/i/irock.cz/test1/
dsync(test1 at irock.cz): Debug: Namespace : type=private, prefix=, sep=/,
inbox=yes, hidden=no, list=yes, subscriptions=yes
location=imapc:/tmp-ram/imapc-test1
dsync(test1 at irock.cz): Debug: imapc: root=/tmp-ram/imapc-test1, index=,
control=, inbox=, alt=
dsync(test1 at irock.cz): Debug: maildir++: root=/tmp-ram/imapc-test1, index=,
control=, inbox=, alt=
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Looking up IP
address
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Connecting to
95.168.205.4:143
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Server
capabilities: IMAP4rev1 AUTH=PLAIN AUTH=LOGIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5
AUTH=NTLM AUTH=GSSAPI SORT THREAD=ORDEREDSUBJECT UIDPLUS QUOTA ACL NAMESPACE
CHILDREN IDLE ID UNSELECT METADATA X-ICEWARP-SERVER X-MOVE MSEARCH XLIST
CREATE-SPECIAL-USE STARTTLS
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Authenticating
as test1 at irock.cz
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Authenticated
successfully
dsync(test1 at irock.cz): Debug: Namespace : type=shared, prefix=Shared/%u/, sep=/,
inbox=no, hidden=no, list=children, subscriptions=yes
location=maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/Shared/%u
dsync(test1 at irock.cz): Debug: shared: root=/var/run/dovecot, index=, control=,
inbox=, alt=
dsync(test1 at irock.cz): Debug: Namespace : type=private, prefix=POP3/, sep=,
inbox=no, hidden=yes, list=yes, subscriptions=yes location=pop3c:
dsync(test1 at irock.cz): Debug: fs: root=, index=, control=, inbox=, alt=
dsync(test1 at irock.cz): Debug: Namespace : Using permissions from
/tmp-ram/imapc-test1: mode=0700 gid=-1
dsync(test1 at irock.cz): Debug: Namespace : Using permissions from
//home/mail/i/irock.cz/test1//Maildir: mode=0700 gid=-1
dsync(test1 at irock.cz): Error: stat((null)) failed: Bad address
dsync(test1 at irock.cz): Error: stat((null)) failed: Bad address
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Looking up IP
address
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Connecting to
95.168.205.4:143
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Server
capabilities: IMAP4rev1 AUTH=PLAIN AUTH=LOGIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5
AUTH=NTLM AUTH=GSSAPI SORT THREAD=ORDEREDSUBJECT UIDPLUS QUOTA ACL NAMESPACE
CHILDREN IDLE ID UNSELECT METADATA X-ICEWARP-SERVER X-MOVE MSEARCH XLIST
CREATE-SPECIAL-USE STARTTLS
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Authenticating
as test1 at irock.cz
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Authenticated
successfully
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Disconnected
dsync(test1 at irock.cz): Debug: imapc(**originating_server**:143): Disconnected
0:00.52

can somebody give me a hint how to use the pop3 migration plugin please?

--

Best regards
Tomas Herceg

Linux System Administrator
Red Hat Certified Engineer 111-070-975

tomas.herceg at stable.cz

Stable.cz, s.r.o. | www.stable.cz

www.stable.cz | www.kvapem.cz | www.multak.cz | www.otoman.cz



More information about the dovecot mailing list