Dovecot ошибка чтения почтового ящика: не удается развернуть ~ / для корня почты

Я хочу настроить dovecot на использование mysql в качестве базы данных пользователей. Это моя конфигурация:

# Authentication for SQL users. Included from 10-auth.conf.
#
# <doc/wiki/AuthDatabase.SQL.txt>

passdb {
  driver = sql

  # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
  args = /etc/dovecot/dovecot-sql.conf.ext
}

# "prefetch" user database means that the passdb already provided the
# needed information and there's no need to do a separate userdb lookup.
# <doc/wiki/UserDatabase.Prefetch.txt>
userdb {
  driver = prefetch
}

Dovecot имеет mail_gid и mail_uid, которые установлены как почтовый пользователь (пользователь exim). И это конфигурация sql:

driver = mysql
connect = host=/var/run/mysqld/mysqld.sock dbname=system user=dovecot password=mypass
default_pass_scheme = PLAIN
password_query = SELECT password, '/var/mail/%d/%n' AS userdb_home FROM user WHERE username = '%n' AND domain = '%d'

И это ошибка после правильного входа в систему:

dovecot: pop3-login: Login: user=<test@user>, method=PLAIN, rip=xxx, lip=xxx, mpid=24372, session=<dwTdGT8n0QBf9La9>
dovecot: pop3(test@user): Error: user test@user: Initialization failed: Namespace '': Home directory not set for user. Can't expand ~/ for mail root dir in: ~/mail:INBOX=/var/mail/domain/test@user
dovecot: pop3(test@user): Error: Invalid user settings. Refer to server log for more information.

Я проверяю журнал mysql и нашел правильный ответ с паролем и домом. Что это может быть? Могу я добавить пользователя dovecot в почтовую группу?

1
задан 19 December 2015 в 14:18
1 ответ

Были допущены две ошибки:

  • Формат электронной почты Exim не соответствовал формату электронной почты dovecot, exim использовал maildir, dovecot был сконфигурирован с mbox. Мне пришлось изменить конфигурацию файла dovecot на maildir.
  • maildir использовал полный адрес в качестве пользовательской папки, exim записывал свою пользовательскую папку только с пользовательской частью адреса. Пример: /var/mail/mydomain.com/myuser@mydomain.com вместо /var/mail/mydomain.com/myuser

мне пришлось изменить эту строку конфигурации в dovecot. От:

mail_location = mbox:~/mail:INBOX=/var/mail/%d/%u

до

mail_location = maildir:/var/mail/%d/%n

(Я подчеркиваю префикс "maildir" вместо "mbox" и %n placeholder вместо %u)

.
0
ответ дан 4 December 2019 в 06:44

Теги

Похожие вопросы