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

Postfix → Dovecot LMTP: Пользователь не существует: uid @ domain

Я пытаюсь заставить 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.