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

Слияние ~ / Maildir между двумя серверами, использующими системные учетные записи

Я просмотрел следующее и не нашел решения своей проблемы:

Переход с любого сервера 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 /.

Я не уверен, как это применимо в вашем сценарии (или даже если это так), но, возможно, стоит проверить.