Я просмотрел следующее и не нашел решения своей проблемы:
Переход с любого сервера IMAP / POP3 на Dovecot
Создание пользователей / паролей Dovecot Master не работает
Безопасное перемещение Maildir на работающем сервере
Синхронизация между двумя почтовыми серверами
У меня есть сервер A, который был настроен с помощью Postfix / Dovecot и использовал формат ~ / Maildir в учетной записи системного пользователя (то есть не виртуальных пользователей). У меня также есть сервер B, который был настроен таким же образом и может иметь или не иметь почту в ~ / Maildir.
Если ~ / Maildir не существует для пользователя на сервере B, то можно с уверенностью предположить, что я могу просто выполнить синхронизацию сервера A ~ / Maildir с сервером B ~ / Maildir, и он сохранит папки, прочитанные письма, другие метаданные, и т.п.
Если ~ / Maildir существует на обоих серверах, каждый с существующей почтой, как я могу безопасно объединить данные с сервера A в ~ / Maildir на сервере B? В принципе, сами файлы данных должны быть уникальными, и все должно сводиться к файлам метаданных Dovecot, которые будут существовать на обоих серверах.
Я искал здесь, но это общий ход, и я думаю, что, поскольку конфигурация сервера похожа, если не идентична, мой сценарий должен быть намного проще:
https://wiki2.dovecot.org/Migration/Dsync
Последний вопрос делает его тривиальным и упрощенным, учитывая содержание других вопросов. Мне неясно, предназначено ли это для виртуальных пользователей или пользователей системы.
https://serverfault.com/a/866298/386414
Я решил, что мне нечего терять, и обнаружил, что для одного пользователя я могу просто запустить:
doveadm import maildir:~/old_mail/Maildir "" all
но это импортировало письма как непрочитанные, а не в том состоянии, в котором они находились для старого Maildir. Как мне это исправить?
Я думаю, что это больше того, что я хочу, поскольку с import
вы можете запустить его только один раз, так как он будет без разбора вводить электронную почту более одного раза:
doveadm sync maildir:~/old_mail/Maildir
но у него все те же проблемы со всей непрочитанной почтой.
Этот ответ приходит поздно, но я буквально объединил четыре учетных записи электронной почты, выполнив
sudo cp -a previous/Maildir/* next/Maildir
Сообщения, которые ранее были помечены как новые, после слияния все равно были помечены как новые. Если вы хотите быть в большей безопасности, вы можете переместить только содержимое cur
и new
каталоги. Файлы в этих каталогах имеют уникальные имена, которые не должны конфликтовать.
Это:
Dovecot Migration и старые письма
Говорит это:
Maildir фактически использует уникальный формат, который упрощает эту задачу. Просто поместите почту в каталог new / внутри корня почты пользователей почты, если вы хотите, чтобы она отображалась как новая. В противном случае он попадает в каталог cur /.
Я не уверен, как это применимо в вашем сценарии (или даже если это так), но, возможно, стоит проверить.