Я пытаюсь заставить Postfix доставлять локальную почту через LMTP Dovecot (среди прочего, чтобы заменить procmail на sieve). До сих пор я использовал mailbox_command = procmail - a "$EXTENSION"
, доставка в местные ~/Maildir
с.
Следующий http://wiki2.dovecot.org/HowTo/PostfixDovecotLMTP, Настроил (постфикс chrooted) в /etc/dovecot/conf.d/10-master.conf
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group=postfix
user=postfix
mode=0600
}
и добавил в /etc/postfix/main.cf
mailbox_transport = lmtp:unix:private/dovecot-lmtp
Теперь это почти работает (Postfix общается с сокетом LMTP), но LMTP не понимает «пользователя» eudoxos@mydomain.eu
в домене:
Jan 11 08:22:17 s18015955 postfix/lmtp[7374]: 3D84E19B0290E: to=<eudoxos@mydomain.eu>, orig_to=<fristname.lastname@mydomain.eu>, relay=iota.mydomain.eu[private/dovecot-lmtp], delay=0.01, delays=0/0/0/0, dsn=5.1.1, status=bounced (host iota.mydomain.eu[private/dovecot-lmtp] said: 550 5.1.1 <eudoxos@mydomain.eu> User doesn't exist: eudoxos@mydomain.eu (in reply to RCPT TO command))
LMTP следует искать только eudoxos
(в LDAP) вместо eudoxos@mydomain.eu
. Как я могу этого добиться?
Если бы я использовал программу доставки (LDA), имя пользователя получателя указывается в качестве аргумента (например, mailbox_command = /usr/lib/dovecot/deliver -f "$SENDER" -a "$RECIPIENT"
), но у меня возникли проблемы с разрешениями журнала с использованием LDA (по этой причине вики Dovecot не рекомендует использовать LDA).
Вам необходимо установить:
auth_username_format = %Ln
В conf.d / 10-auth.conf
Это удаляет доменное имя и '@'.
Решением было установить
user_filter = (&(objectClass=posixAccount)(uid=%n)
в /etc/dovecot/dovecot-ldap.conf.ext
.