Миграция с любого сервера IMAP/POP3 на Dovecot

Я пытаюсь синхронизировать два почтовых ящика, которые находятся на разных серверах. Это связано с процессом миграции. Старый сервер является сервером-курьером и должен быть доступен через IMAP, тогда как новый сервер является сервером dovecot. Я пытаюсь следовать оригинальной документации Dovecot. К сожалению, не указано, где должна быть установлена ​​конфигурация исходного IMAP, когда doveadm скрипт запускается на конечном сервере. В документации приводятся настройки, но не упоминается, в какой файл конфигурации dovecot необходимо ввести настройки.

4 ответа

Вы также можете сделать следующее в командной строке без файлов конфигурации:

# doveadm -Dv  \
  -o imapc_host=<SOURCE_HOST> \
  -o imapc_user=<SOURCE_USERNAME> \
  -o imapc_password=<SOURCE_PASSWORD> \
  -o imapc_features=rfc822.size \
  -o imapc_ssl=starttls \
  -o mail_fsync=never \
   backup -R -u <DESTINATION_MAILBOX> imapc:

У меня были большие проблемы, потому что мой исходный IMAP поддерживает только STARTTLS на порту 143. -o imapc_ssl=starttls был спасателем в моем случае.

Вы можете выполнить синхронизацию после первоначального резервного копирования с помощью:

# doveadm -Dv \
  -o imapc_host=<SOURCE_HOST> \
  -o imapc_user=<SOURCE_USERNAME> \
  -o imapc_password=<SOURCE_PASSWORD> \
  -o imapc_features=rfc822.size \
  -o imapc_ssl=starttls \
  -o mail_fsync=never \
  sync -1 -R -u <DESTINATION_MAILBOX> imapc:

Конечно, это довольно небезопасно, если у вас есть больше пользователей, которые могут видеть ваши команды (и пароли) с who или заглядывая в ваш файл.bash_history, так что будьте осторожны.

Если бы два почтовых сервера работали без проблем с протоколом IMAP, я бы использовал imapsync делать работу. И курьер, и голубятня поддерживаются imapsync,

Очень просто использовать и поддерживать многие функции, такие как сопоставления регулярных выражений для синхронизации различных папок.

Программное обеспечение является FOSS и может быть найдено здесь: http://imapsync.lamiral.info/

Если вам нужна синхронизация UID, вы можете добавить опцию --useuid в imapsync. Я не уверен, что вы говорите об этом UID. Но это вариант, который вы должны искать:

--useuid: использовать uid вместо заголовка в качестве критерия для распознавания сообщений. Затем подразумевается опция --usecache, если не используется --nousecache.

Вы должны перенести свою почту, используя dsync Утилита от Dovecot. Это сохранит идентификаторы UID и даже идентификаторы POP3, если это необходимо.

Бежать dsync с использованием backup -R вариант, чтобы "отменить резервное копирование" с удаленного сервера IMAP на локальный сервер Dovecot. Вам нужно создать специальный файл конфигурации, примерно так:

imapc_host = imap.company.com
imapc_user = %u@company.com
imapc_password =  mypassword
imapc_features = rfc822.size fetch-headers
imapc_port = 143
pop3c_host = pop3host.company.com
pop3c_user = %u@company.com
pop3c_password = mypassword
pop3c_port = 110
namespace pop3c {
   prefix = POP3-MIGRATION-NS/
   location = pop3c:~/pop3c
   list = no
   hidden = yes
}

!include /etc/dovecot/dovecot.conf

plugin {
  pop3_migration_mailbox = POP3-MIGRATION-NS/INBOX
  pop3_migration_skip_size_check = yes
  pop3_migration_ignore_missing_uidls=yes
}
mail_prefetch_count = 20
mail_shared_explicit_inbox = no
protocol doveadm {
  mail_plugins = $mail_plugins pop3_migration
}

Обратите внимание, что это для одного пользователя; Вы можете захотеть использовать разные опции, если используете мастер-пароль / пароль или если для соединений требуется SSL.

Тогда назовите это чем-то вроде:dsync -D -v -u username -c configfile.cfg

username заменяет %u в config.cfg файл. -D -v подробный режим отладки

Вы должны включить эти настройки в конфигурацию Dovecot, обычно конфиги Dovecot находятся в /etc/dovecot/,

Лучше всего было бы разместить конфигурацию в /etc/dovecot/conf.d/90-migration.conf (все файлы в conf.d dir включаются автоматически).

Для перезагрузки конфигурации вам нужно запустить:

sudo doveadm reload
Другие вопросы по тегам