Я переношу почту со старого сервера на новый, конфигурация хорошая (виртуальные учетные записи mysql и только imap), с голубятней и постфиксом. Он уже запущен для других пользователей, я просто хочу объединить старые учетные записи со старого сервера на новый.
Перенос прошел нормально, я просто хотел знать, как я могу "шоу"все старые письма в UA Clients. Я имею в виду, есть ли указатель голубятни файл или такой, который можно было бы воссоздать, уничтожить, так что все старые письма будут «помечены» как новый ?
Я попробовал принятый ответ, и он потерпел неудачу - версии голубятни в игре, вероятно, слишком далеко друг от друга, и мы также переключили основной MTA. Итак, вот более надежное решение: doveadm import
Предполагая, что вы размещаете электронную почту для домена hosted.tld и существует учетная запись для входа local.account@hosted.tld (а может просто Рут), а резервная копия с предыдущего сервера находится в формате MailDir и доступна внутри структуры папок, например / tmp / TRANSFER /домен/учетная запись/ Maildir затем вы можете импортировать их на свой новый хостинг dovecot с помощью
$ doveadm import -u local.account@hosted.tld maildir:/tmp/TRANSFER/hosted.tld/local.account/Maildir "" all
в более общем плане:
$ doveadm import -u LOCAL_USER FORMAT:PATH "" all
Все это можно почерпнуть из прекрасное руководство. Потребовалось две попытки, чтобы выяснить, что мы просто использовали "" (пустой почтовый ящик назначения) действительно разыскивается ;-)
Возможно, вам даже повезет больше, чем нам, без предварительной передачи файлов - если старый и новый сервер работают одновременно и ваши учетные записи настроены соответствующим образом с использованием doveadm синхронизация.
Для сообщений Maildir такие флаги хранятся в имя файла. Например:
1328040798.M558634P29803.equal,S=17876,W=18294:2,FS
Письма FS
после запятой означает Flagged
и Seen
. Чтобы пометить сообщение как «невидимое», удалите S
флаг...
for msg in maildir/cur/*; do
msgbase=${msg%,*}
flags=${msg##*,}
flags=${flags//S/}
mv -v "$msg" "$msgbase,$flags"
done
... или просто закинуть сообщения в new
папка:
mv maildir/cur/* maildir/new/
Формат Maildir состоит из серии каталогов, соответствующих структуре папок IMAP, в которых находятся электронные письма, по одному файлу на каждое письмо.
Чтобы скопировать электронные письма из одной системы электронной почты в другую, вы можете просто скопировать каталоги и файлы и убедиться, что разрешения для этих каталогов и файлов верны в месте назначения.
Структура Maildir выглядит так:
mail/cur/
mail/new/
mail/tmp/
mail/.personal/cur/
mail/.personal/new/
mail/.personal/tmp/
Это показывает папку INBOX (cur, new, tmp) и другую папку с именем «Personal». Обратите внимание на точечный префикс, показывающий, что эта папка скрыта, поэтому это следует учитывать при передаче.
В new
папка содержит все электронные письма, которые не были просмотрены клиентом, а cur
папка содержит текущие электронные письма. В tmp
папка должна быть пустой, если почтовый сервер не работает.
Maildir фактически использует уникальный формат, который упрощает эту задачу. Просто поместите почту в new/
каталог внутри mailroot пользователей почты, если вы хотите, чтобы он отображался как новый. В противном случае он попадает в cur/
каталог.