对抗垃圾邮件与保障Sendmail服务器安全
一、处理输入邮件头
除了定义自己的规则集,你还可以从邮件头定义中调用规则集,来检查系统接收到的邮件头格式。有时,垃圾邮件发送者会使用格式错误的邮件头,这可能暗示该邮件是垃圾邮件。假设你收到来自某个忘记创建有效Message-Id邮件头的垃圾邮件发送者的邮件,你可以使用如下代码进行检查:
LOCAL_RULESETS HMessage-Id: $>check_MID_header Scheck_MID_header R$+ @ $+ $@ $#OK R$* $#error $: 550 Invalid HeaderLOCAL_RULESETS部分包含一个用于sendmail.cf文件的H命令。与之前看到的H命令不同,此命令不包含邮件头格式,而是使用$>语法调用规则集来处理邮件头。在这个例子中,调用的是check_MID_header规则集,该规则集检查Message-Id邮件头是否包含唯一的消息标识符和主机名,格式为identifier@host,其他格式将被视为错误。
不过,不建议使用这些重写规则示例。一方面,重写规则可能复杂且难以开发;另一方面,垃圾邮件的格式不断变化,今天编