Миграция с любого сервера 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