我们在大学环境中拥有两台 Postfix 邮件服务器。十几个不同的组管理着数千台服务器,而我并不控制所有主机。这些服务器使用我的邮件服务器来路由电子邮件,无论是作为智能主机还是使用 MX 记录。
多个服务器不断发送电子邮件,其发件人地址如下:
[email protected]
这些电子邮件被发送到无效地址,因此被退回。但由于“发件人:”地址也是无效的,这些电子邮件陷入了几天的无休止的退回循环中。
如果我列出 Postfix 队列,则会postqueue -p
显示数百条如下消息:
ABCD7301713E 3799 Tue Mar 5 05:20:35 MAILER-DAEMON
(delivery temporarily suspended: connect to host.example.org[192.168.100.100]:25: Connection refused)
[email protected]
- 在邮件服务器上使用 Postfix,是否可以重写这些电子邮件中的“发件人:”地址或“收件人:”地址?我想将它们发送给系统所有者并要求他们清理他们的系统。
- 我可以将这些退回邮件通知邮政局长吗?然后邮政局长可以通知系统所有者。
答案1
一旦解决方案是通知某人关于退回。postmaster 有时用于此任务。参数通知类并bounce_notice_recipient
可以允许我通知邮政局长邮件退回的情况。
退回邮件可能包含尝试发送电子邮件的主机的主机名和 IP。如果没有,管理员可以postcat
在 Message-Id 上运行命令并查看邮件的内容(包括标题和所有内容)。从这里,我们可以联系系统所有者并要求他们修复他们那边的问题。
弹跳(也意味着2反弹)
向 postmaster 发送退回邮件的邮件头副本,并在 Postfix 拒绝邮件时发送 SMTP 会话记录。通知将发送到 bounce_notice_recipient 配置参数指定的地址(默认值:postmaster)。
2反弹
将无法送达的退回邮件发送给邮政局长。通知将发送到使用 2bounce_notice_recipient 配置参数指定的地址(默认值:邮政局长)。
bounce_notice_recipient(默认值:postmaster)
Postfix 未投递邮件的邮件头和 Postfix 未收到邮件的 SMTP 对话记录的邮件管理员通知的收件人。此功能通过 notify_classes 参数启用。
2bounce_notice_recipient(默认:postmaster)
无法送达且无法返回给发件人的邮件的收件人。此功能通过notify_classes参数启用。
答案2
您是否考虑过在 SMTP 会话中拒绝具有无效信封发件人的邮件?
您可以选择以下选项之一:
- 将“无响应的主机”添加到访问表采取 REJECT 操作
- 使用策略过滤器。
Postfix 源代码树中的文件examples/smtpd-policy/greylist.pl
实现了简化的灰名单策略服务器 - 使用自定义米尔特
MIMEDefang网站milter 让你用 Perl 表达你的过滤策略——如果你还打算添加垃圾邮件/病毒过滤,那么值得考虑
在我看来,会话拒绝就是应该在 SMTP 中可以完成,但是由于非技术原因,它经常没有完成。