Я делаю миграцию с mbox на mdbox на новом диске. От / mnt / mail / $ user к / mnt / mail2 / $ user
Текущее расположение mail_location = mbox: ~ / mail: INBOX = / mnt / mail /% u / mail / Inbox
Новый mail_location = mdbox: / mnt / mail2 / $ user / mdbox
Мой основной userdb - passwd, и у меня есть переопределение для всех пользователей с другим userdb:
userdb {
driver = passwd
result_success = continue-ok
}
userdb {
driver = passwd-file
args = username_format=%u /etc/dovecot/passwd.override
skip = notfound
}
Первый шаг, переопределение mail_location для этого пользователя:
$user:::::::userdb_mail_location=/mnt/mail2/%u/mdbox
Начало миграции:
doveadm sync -f -u $user mbox:/mnt/mail/$user/mail:INBOX=/mnt/mail/$user/mail/Inbox
Синхронизация идет хорошо, все папки и письма находятся в папке mdbox на / mnt / mail2 / $ user / mdbox.
Затем домашний каталог этого пользователя изменяется с / mnt / mail / $ user на / mnt / mail2 / $ user, разрешения устанавливаются.
/ etc / passwd показывает, что домашний каталог пользователя - / mnt / mail2 / $ user.
/etc/dovecot/passwd.override содержит новое местоположение mdbox mail_location для этого пользователя.
К сожалению, когда приходит новая почта, она все равно попадает в старый почтовый ящик.
Postfix использует dovecot-lda в качестве агента доставки:
mailbox_command = / usr / lib / dovecot / dovecot-lda -f "$ SENDER" -a "$ RECIPIENT"
Возможно ли, что dovecot-lda не понимает переопределения? И почему он по-прежнему доставляется в старый $ HOME для этого пользователя, независимо от того, что он был изменен?
Проблема заключалась в том, что dovecot-lda
не выполняет поиск в userdb, и мой переопределенный mail_location
не действовал. Упоминается в документы, и ответ - добавить -d "$USER"
к параметрам.
В постфиксе конфигурация для mailbox_command
должно быть:
mailbox_command = /usr/lib/dovecot/dovecot-lda -d "$USER" -f "$SENDER" -a "$RECIPIENT"
Вы заглянули в https://wiki2.dovecot.org/Migration/MailFormat? Обычно это очень просто сделать с помощью dsync, следуя приведенным там инструкциям.