有人能帮助我构建 sendmail 规则来限制垃圾邮件吗?假设我的域名是 my.domain.com,我想使用以下规则:
如果发件人和收件人地址都来自 my.domain.com,则应拒绝邮件(sendmail 服务器仅在我的内部 exchange 服务器和外部 word 之间中继邮件,因此来自 my.domain.com 的用户之间发送邮件总是发生在 exchange 服务器上,而从不发生在 sendmail 服务器上)
如果收件人列表中至少有一个无效地址,则应拒绝整个邮件(即使收件人地址有效)
如果发送服务器使用带有虚假域名(非本服务器的域名)的 HELO 消息,则应拒绝该消息
任何尝试将邮件发送到专用地址的服务器(例如[电子邮件保护]),应自动列入黑名单
任何其他建议的规则...
答案1
如果你想跑MIME去方与 sendmai 一起,您可以通过提供适当的例程来完成大部分编写的工作mimedefang 过滤器。但是,最好的方法是先使用 SpamAssassin,然后再看看自己还能实现哪些过滤器。SpamAssassin 可以通过 MIMEDefang 执行,这意味着您可以将它与自己的自定义规则相结合。
答案2
你不会想这么做的。你为维护一个半有用的规则集所付出的努力(以及随着垃圾邮件趋势的变化而继续付出的努力)绝对不值得。看看milter.org获取社区维护的优秀规则集目录,并考虑垃圾邮件杀手以便在 Sendmail 级别进行更强大的垃圾邮件过滤。希望对您有所帮助!
答案3
我同意大多数其他发帖者的观点,认为使用混合器可以更好地完成其中一些任务。
对于第 (1) 点,是否有任何正当理由不拒绝所有声称来自您域的外部邮件?如果没有,最好通过定义 SPF 记录并使用 spf-milter 来拒绝全部违反已发布的 SPF 记录的传入邮件。
对于第 (3) 点,这应该已经完成了,因为它是 sendmail 中的标准。通常需要打开
FEATURE(`accept_unresolvable_domains')
在 m4 配置文件中,以便让 sendmail接受来自无效域的电子邮件。检查您的 m4 文件;如果该行存在,请将其删除并重新生成您的 cf 文件。
老实说,您可以坐在那里尝试逐个重新发明垃圾邮件减少轮子,但许多其他人已经在这个领域做了很多其他出色的工作。对我来说,没有上述行的 sendmail,加上 milter-greylist 和 spf-milter,加上投递时的 spamassassin-via-procmail,已经将收件箱中的垃圾邮件减少了 99% 以上(灰名单是最便宜、最有效的方法)。