是否可以免除“MAILER DAEMON”消息的别名扩展或中继?
背景:让我们来说明一下这个简单的前向全部设置中存在的问题:
/etc/aliases
root: [email protected]
/etc/postfix/generic_maps
@host.local [email protected]
/etc/postfix/main.cf
relayhost = [smtp.domain.com]:submission
当继电器断开时
- 常规 cronjob 尝试发送电子邮件来自:[电子邮件保护]
- 它被别名重写并遇到中继失败
- “MAILER DAEMON”发送警告电子邮件至:[电子邮件保护]
- 它被别名重写并遇到中继失败
- 这些错误毫无意义地扰乱了队列
我希望将它们发送到本地收件箱,提醒登录的管理员。
如何免除错误邮件的别名扩展和/或中继?
答案1
1 明智的解决方案
/etc/postfix/main.cf
bounce_queue_lifetime = 0
notify_classes = bounce
bounce_notice_recipient = bounces@<yourdomain.tld>
- 您可能想禁用 bounce(8) 服务,但是我预计禁用邮政局长退回邮件。
有关详细信息,请参阅删除未送达的 MAILER-DAEMON和在 Postfix 中收集退回邮件
怎么运行的:
- 无法送达的退回邮件将被删除
- 所有退回邮件的副本均会发送至 bounces@<yourdomain.tld>
缺点:1)bounces@<yourdomain.tld> 必须是非重定向的本地收件箱。2)原始退回邮件将被删除后服务器尝试通过失败的中继进行无用的传输
2 有点疯狂的解决方案(未经测试)
/etc/postfix/main.cf
sender_dependent_default_transport_maps = hash:sender_dependent_default_transport_maps
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
virtual_uid_maps = hash:/etc/postfix/virtual_uid_maps
virtual_gid_maps = static:<GID_of_/var/spool/mail>
#virtual_mailbox_domains = <yourdomain.tld> #MAYBE
sender_dependent_default_transport_maps
MAILER-DAEMON@<yourdomain.tld> virtual:
/etc/postfix/virtual_uid_maps
alice@<yourdomain.tld> 1000
bob@<yourdomain.tld> 1002
charlie@<yourdomain.tld> 1001
/etc/postfix/virtual_mailbox_maps
alice@<yourdomain.tld> alice/
bob@<yourdomain.tld> bob
charlie@<yourdomain.tld> charlie
- 每次更改后,不要忘记 $postmap 所有 *_maps 文件。
有关详细信息,请参阅虚拟递送代理手册页和在 Postfix 中收集退回邮件
怎么运行的:
- sender_dependent_default_transport_maps 强制通过虚拟退回投递:投递代理...
- ...将邮件发送到在 virtual_*_maps 中配置的邮箱/maildir
缺点:1) 未经测试。2) 永远不会向低于 virtual_minimum_uid 的 UID 交付。3) virtual_*_maps 必须手动与现有用户帐户保持同步
3 完全疯狂的解决方案
/etc/postfix/main.cf
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
virtual_uid_maps = hash:/etc/postfix/virtual_uid_maps
virtual_gid_maps = static:<GID_of_/var/spool/mail>
virtual_mailbox_domains = bounces.<yourdomain.tld>
smtp_generic_maps = regexp:/etc/postfix/generic_maps
sender_canonical_maps = regexp:/etc/postfix/canonical_sender_maps
/etc/postfix/virtual_uid_maps
alice@bounces.<yourdomain.tld> 1000
bob@bounces.<yourdomain.tld> 1002
charlie@bounces.<yourdomain.tld> 1001
/etc/postfix/virtual_mailbox_maps
alice@bounces.<yourdomain.tld> alice/
bob@bounces.<yourdomain.tld> bob
charlie@bounces.<yourdomain.tld> charlie
/etc/postfix/generic_maps
/@bounces./ @
/etc/postfix/canonical_sender_maps
/^([^@]*)$/ $(1)@bounces.<yourdomain.tld>
/^([^@]*)@/ $(1)@bounces.
- 每次更改后,不要忘记 $postmap 所有 *_maps 文件。
怎么运行的:
- canonical_sender_maps 将“反弹”添加到发件人所有本地排队邮件
- 如果邮件通过 SMTP 发出,smtp_generic_maps 将撤消更改
- 如果邮件被退回,smtp_generic_maps 将不适用...
- ... 并且通知被发送到虚拟域@bounces。<yourdomain.tld>...
- ...将邮件发送到在 virtual_*_maps 中配置的邮箱/maildir
有关详细信息,请参阅地址重写概述
缺点:1) 太疯狂了。2) 永远不会向低于 virtual_minimum_uid 的 UID 发送消息 3) virtual_*_maps 必须手动与现有用户帐户保持同步