postfix、dovecot 2、mailman、dovecot-lda 位于同一域中,配置不再起作用

postfix、dovecot 2、mailman、dovecot-lda 位于同一域中,配置不再起作用

此配置曾经有效,但更新至 Dovecot 2(Ubuntu 12.04)后,发送给 mailman 的邮件就无法再投递了:

邮件没有投递给邮递员,而是被退回,原因是不存在的用户[email protected]

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
dovecot_destination_recipient_limit = 1
inet_interfaces = all
inet_protocols = ipv4
mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"
mailbox_size_limit = 0
mydestination = $myhostname
myhostname = host.domain.tld
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 141.x.x.x
myorigin = /etc/mailname
owner_request_special = no
readme_directory = /usr/share/doc/postfix
recipient_delimiter = +
relayhost = smarthost.domain.tld
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP
smtpd_recipient_restrictions = reject_unknown_recipient_domain,     reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated,    reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf,     hash:/var/lib/mailman/data/virtual-mailman, hash:/etc/postfix/virtual
virtual_gid_maps = static:1002
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = dovecot
virtual_uid_maps = static:1002

master.cf

# Postfix 主进程配置文件。有关格式的详细信息
# 有关该文件的信息,请参阅 master(5) 手册页(命令:“man 5 master”)。
#
# 编辑此文件后,请不要忘记执行“postfix reload”。
#
# ==========================================================================
# 服务类型 private unpriv chroot wakeup maxproc 命令 + 参数
# (是) (是) (是) (从不) (100)
# ==========================================================================
smtp inet n - - - - smtpd
提交 inet n - - - - smtpd
  -o smtpd_tls_security_level =加密
  -o smtpd_sasl_auth_enable=是
  -o smtpd_client_restrictions=permit_sasl_authenticated,拒绝
  -o milter_macro_daemon_name=起始
smtps inet n - - - - smtpd
  -o smtpd_tls_wrappermode=是
  -o smtpd_sasl_auth_enable=是
  -o smtpd_client_restrictions=permit_sasl_authenticated,拒绝
  -o milter_macro_daemon_name=起始
#628 inet n - - - - qmqpd
拾取先进先出 - - 60 1 拾取
清理 unix n - - - 0 清理
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - - 300 1 oqmgr
tlsmgr unix - - - 1000?1 tlsmgr
重写 unix - - - - - 简单重写
弹回 unix - - - - 0 弹回
推迟 unix - - - - 0 反弹
跟踪 unix - - - - 0 反弹
验证 unix - - - - 1 验证
刷新 unix n - - 1000? 0 刷新
代理映射 unix - - n - - 代理映射
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
# 当将邮件作为备份 MX 中继时,禁用 fallback_relay 以避免 MX 循环
中继 unix - - - - - smtp
    -o smtp_fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
显示q unix n - - - - 显示q
错误 unix - - - - - 错误
重试 unix - - - - - 错误
丢弃 unix - - - - - 丢弃
本地 unix-nn--本地
虚拟 unix - nn - - 虚拟
lmtp unix - - - - - lmtp
铁砧 unix - - - - 1 个铁砧
scache unix - - - - 1 scache
#
# ====================================================================
# 与非 Postfix 软件的接口。请务必检查手册
# 非 Postfix 软件的页面来找出它需要什么选项。
#
# 以下许多服务都使用 Postfix pipe(8) 传递
# 代理。有关 ${recipient} 的信息,请参阅 pipe(8) 手册页
# 和其他消息信封选项。
# ====================================================================
#
# maildrop。有关详细信息,请参阅 Postfix MAILDROP_README 文件。
# 还在 main.cf 中指定:maildrop_destination_recipient_limit=1
#
maildrop unix-nn--管道
  标志=DRhu 用户=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# 查看 Postfix UUCP_README 文件了解配置详细信息。
#
uucp unix-nn--管道
  标志=Fqhu 用户=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# 其他外部交付方法。
#
ifmail unix-nn--管道
  标志 = F 用户 = ftn argv = / usr / lib / ifmail / ifmail -r $ nexthop($ recipient)
bsmtp unix-nn--管道
 标志=Fq。用户=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix-nn-2 管道
  标志=R 用户=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix-nn--管道
  标志=FR 用户=列表 argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${用户}
# Dovecot LDA
dovecot unix-nn--管道
   标志=DRhu 用户=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
#smtp inet n - n - 1 postscreen
#smtpd 传递 - - n - - smtpd
#dnsblog unix - - n - 0 dnsblog
#tlsproxy unix--n-0 tlsproxy

mm.cfg也相当简单:

MTA='后缀'
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['my.host.tld']

Dovecot 配置为仅通过mysql- 验证用户身份,但 mailman 别名相同。该域是 Postfix 虚拟域。

有什么提示可以查看哪里吗?要测试什么?它以前使用相同的配置工作,但现在我使用 dovecot 2.0 中的 dovecot-lda,它不再工作了,但这也可能是另一个问题,一些配置发生了变化。

答案1

这不是 dovecot 问题或 Postfix 问题。这是与 mailman 的消息传递相关的问题。我仍然不确定它为什么曾经有效,但现在我已经让它正常工作了:

此问题的 Mailman 文档条目

如果我遵循所有这些步骤并将新生成的 transports-mailman 文件添加到 Postfix,它就可以工作。

答案2

  1. smtp 身份验证还能用吗?
  2. dovecot 登录还能用吗?用户可以通过 imap 或 pop3 接收邮件吗?
  3. /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"使用您域中的真实电子邮件地址进行手动测试。

如果 (2) 或 (3) 失败,那么这就是鸽舍问题。

相关内容