我试图让 Postfix 通过 Dovecot 的 LMTP 发送本地邮件(除其他外,用筛子替换 procmail)。到目前为止,我一直在使用mailbox_command = procmail - a "$EXTENSION"
,交付到本地~/Maildir
。
在http://wiki2.dovecot.org/HowTo/PostfixDovecotLMTP之后,我在/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 对[email protected]
包含域的“用户”感到困惑:
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)。
你需要设置:
在conf.d/10-auth.conf
这将删除域名和“@”。
解决方案是设置
在
/etc/dovecot/dovecot-ldap.conf.ext
.