Назад | Перейти на главную страницу

Перенос почты Dovecot из mdbox

Я пытаюсь перенести mdbox на maildir на основе https://wiki.dovecot.org/Migration/MailFormat

Я изменил dovecot.conf и установил mail_location=maildir:/tmp/destination/mailboxes/

Затем я сбежал

/mnt/testmail/bin/dsync -Dv -u user@domain.com mirror mdbox:/source/mailboxes/user@domain.com

но это ничего не дало. Затем я изменил dovecot.conf и установил mail_location=mdbox:/source/mailboxes

Затем я сбежал

/mnt/testmail/bin/dsync -Dv -u user@domain.com mirror mdbox:/tmp/destination/mailboxes/user@domain.com

который скопировал почтовый ящик user@domain.com из источника в место назначения. Поскольку это работало, я попытался запустить

/mnt/testmail/bin/dsync -Dv -u user@domain.com mirror maildir:/tmp/destination/mailboxes/user@domain.com

но возникла ошибка:

dsync (user@domain.com): Отладка: Входящий ящик пространства имен: type = private, prefix =, sep =, inbox = yes, hidden = no, list = yes, subscriptions = yes location = maildir: / mnt / testmail / mailboxes dsync (user@domain.com): ошибка: ошибка инициализации пользователя: пространство имен '': неизвестный драйвер почтового хранилища maildir

Первая проблема заключается в том, что, исходя из примера № 2 выше, синтаксис в https://wiki.dovecot.org/Migration/MailFormat неверно или по какой-то причине у меня не работает так, как должно, например # 1.

Вторая проблема - не распознавание формата maildir - что насчет этого? В Docecot отсутствуют некоторые библиотеки?

Версия Dovecot 2.2.18 и конфигурация выглядят так:

# 2.2.18: /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.8
# OS: Linux 2.6.32-754.14.2.el6.x86_64 x86_64 CentOS release 6.10 (Final) xfs
auth_master_user_separator = *
auth_mechanisms = plain login
dict {
  acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
lda_mailbox_autosubscribe = yes
log_path = /var/log/dovecot.log
mail_home = mdbox:/var/homedirs/%2Mu/%2.2Mu/%u
mail_location = mdbox:/var/mailboxes/%2Mu/%2.2Mu/%u
mail_plugins = acl
mail_shared_explicit_inbox = yes
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 index ihave duplicate vnd.dovecot.pipe vnd.dovecot.filter vnd.dovecot.execute
namespace {
  list = children
  location = mdbox:/var/mailboxes/%%2Mu/%%2.2Mu/%%u
  prefix = shared/%%u/
  separator = /
  subscriptions = yes
  type = shared
}
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox INBOX {
    auto = subscribe
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
  subscriptions = yes
}
passdb {
  args = /etc/dovecot/mastership-sql.conf
  driver = sql
  master = yes
  pass = yes
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  acl = vfile
  acl_defaults_from_inbox = yes
  acl_shared_dict = proxy::acl
  sieve_after = /etc/dovecot/sieve/99-file-qvera-ccda.sieve
  sieve_after2 = /etc/dovecot/sieve/98-notify-biz-address.sieve
  sieve_after3 = /etc/dovecot/sieve/97-mdn-processed.sieve
  sieve_execute_bin_dir = /etc/dovecot/sieve-execute
  sieve_execute_socket_dir = sieve-execute
  sieve_extensions = +vnd.dovecot.execute +vnd.dovecot.filter +vnd.dovecot.pipe
  sieve_filter_bin_dir = /etc/dovecot/sieve-filter
  sieve_filter_socket_dir = sieve-filter
  sieve_pipe_bin_dir = /etc/dovecot/sieve-pipe
  sieve_pipe_socket_dir = sieve-pipe
  sieve_plugins = sieve_extprograms
}
postmaster_address = postmaster@test2.domain.com
sendmail_path = /sbin/sendmail
service dict {
  unix_listener dict {
    user = dovecot
  }
}
service imap-postlogin {
  executable = script-login /etc/dovecot/imappostlogin
  user = $default_internal_user
}
service imap {
  executable = imap imap-postlogin
}
ssl = no
userdb {
  args = uid=dovecot gid=dovecot home=/var/mailboxes/%%2Mu/%%2.2Mu/%%u
  driver = static
}
protocol lmtp {
  mail_plugins = acl sieve
}
protocol lda {
  mail_plugins = acl sieve
}
protocol imap {
  mail_plugins = acl imap_acl
}

Вполне возможно, что это была кастомная компиляция.

Я понял, что мне нужно перекомпилировать Dovecot с помощью

--with-storages=mdbox,imapc,sdbox,maildir,mbox

сделать конфигурацию, чтобы иметь отсутствующий формат хранения почты