Я пытаюсь синхронизировать два почтовых ящика, которые находятся на разных серверах. Это связано с процессом миграции. Старый сервер - это курьерский сервер, доступ к которому должен осуществляться через IMAP, тогда как новый сервер - это сервер dovecot. Я пытаюсь следовать оригинальная документация Dovecot. К сожалению, не указано, где должна быть установлена конфигурация исходного IMAP, когда doveadm
сценарий выполняется на целевом сервере. В документации представлены настройки, но не упоминается, в какой файл конфигурации dovecot необходимо ввести настройки.
Вы также можете сделать следующее в командной строке без файлов конфигурации:
# 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
делать работу. И Courier, и Dovecot поддерживаются imapsync
.
Очень просто использовать и поддерживать многие функции, такие как сопоставления регулярных выражений для синхронизации различных папок.
Это программное обеспечение FOSS, и его можно найти здесь: http://imapsync.lamiral.info
Если вам нужна синхронизация UID, вы можете добавить опцию --useuid
в imapsync. Я не уверен, что вы говорите о таком UID. Но это тот вариант, который вам следует искать:
--useuid: использовать uid вместо заголовка в качестве критерия для распознавания сообщений. Тогда подразумевается опция --usecache, если не используется --nousecache.
Вам следует перенести свою почту с помощью dsync
утилита от Dovecot. При необходимости будут сохранены UID и даже POP3 UIDL.
Бегать 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