我在其他服务器 domain2 前面的 domain1 上设置了 exim4(带有 sendmail)。第二台服务器无法直接访问互联网,因此 domain1 是 domain2 的 MX。并且 domain2 的设置与hubbed_host
domain1 上的 exim4 相同。
当垃圾邮件发送者为 no_such_user@domain2 发送消息时,它的 sendmail 会拒绝:
550 5.1.1 <no_such_user@domain2>... User unknown
然后,域 1 的 exim4 执行如下自动回复:
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
no_such_user@domain2
SMTP error from remote mail server after RCPT TO:<no_such_user@domain2>:
host 10.0.0.1 [10.0.0.1]: 550 5.1.1 <no_such_user@domain2>... User
unknown
垃圾邮件发送者使用虚假的“发件人”字段,这样生成的消息会被 exim 冻结很长时间。
如何禁用 exim4 的部分或全部自动回复?理想情况下,我想要一个过滤器,如果消息未传递错误“用户未知”而不是不从邮件守护程序生成任何自动回复。
谢谢!
我认为这篇博文就是你要找的。
您的问题是您没有在 RCPT 时验证收件人地址。这很容易解决。
对收件人使用标注验证。您与之交谈的“远程”服务器在您的控制之下,因此这不是滥用。
在分配给 acl_smtp_rcpt 的 ACL 中,您有一个执行“验证 = 收件人”的规则。在不了解您的规则的情况下,我无法确切地说出该怎么做。如果此行在“接受”块中,那么就在它之前,您可以添加另一个接受块,几乎相同,添加“域 = 域 2”限制并且“验证 = 收件人/标注”(添加这 8 个字符在最后)。如果这是在“要求”块中,而不是“接受”,那么在该块之后您可以添加一个拒绝块,例如:
还有更多选项可以控制超时、延迟操作等。请参阅 The Exim Specification 的§40.42“标注的附加参数”(应该是系统上的某个位置的“spec.txt”)。