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

Переход Dovecot с mbox на mdbox

Я делаю миграцию с 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, следуя приведенным там инструкциям.