Postfix → Dovecot LMTP:用户不存在:uid@domain

Postfix → Dovecot LMTP:用户不存在:uid@domain

我正在尝试让 Postfix 通过 Dovecot 的 LMTP 传递本地邮件(其中包括用 sieve 替换 procmail)。到目前为止,我一直在使用mailbox_command = procmail - a "$EXTENSION",传递到本地~/Maildirs。

下列的http://wiki2.dovecot.org/HowTo/PostfixDovecotLMTP,我配置了(postfix 是 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

[email protected]现在,几乎可以正常工作(Postfix 与 LMTP 套接字对话),但是 LMTP 对于包含域的“用户”感到困惑:

Jan 11 08:22:17 s18015955 postfix/lmtp[7374]: 3D84E19B0290E: to=<[email protected]>, orig_to=<[email protected]>, 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 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command))

LMTP 应该只查找eudoxos(在 LDAP 中)而不是[email protected]。我该如何实现?

如果我使用递送程序(LDA),则收件人用户名被指定为参数(如mailbox_command = /usr/lib/dovecot/deliver -f "$SENDER" -a "$RECIPIENT"),但我在使用 LDA 时遇到了日志权限问题(出于这个原因,Dovecot wiki 不鼓励使用 LDA)。

答案1

您需要设置:

auth_username_format = %Ln

conf.d/10-auth.conf

这将删除域名和“@”。

答案2

解决方案是设置

user_filter = (&(objectClass=posixAccount)(uid=%n)

/etc/dovecot/dovecot-ldap.conf.ext

相关内容