如何通过Procmail将垃圾邮件转发至SpamCop.net并保留邮件头
Procmail配置:删除垃圾邮件并按SpamCop要求转发
原配置
:0fw | /usr/bin/spamassassin :0H * ^X-Spam-Level: \*\*\*\*\*\*\*\*\* /dev/null :0H: * ^X-Spam-Status: Yes ./Spam
需求
针对匹配X-Spam-Level: *********的邮件,除了移入/dev/null删除,还需要转发至submit.[id]@spam.spamcop.net,且必须将原邮件作为附件发送(SpamCop要求保留完整邮件头,直接转发无法满足该要求)。
解决方案
借助formail和sendmail工具构造符合要求的转发邮件,修改后的规则如下:
:0H * ^X-Spam-Level: \*\*\*\*\*\*\*\*\* { # 复制邮件并作为附件转发给SpamCop :0 c | (formail -I "" -I "Subject: Submitted Spam" ; cat) | sendmail submit.[id]@spam.spamcop.net # 删除原邮件 :0 /dev/null }
关键说明
:0 c:复制当前邮件,确保转发操作不影响后续的删除动作formail -I "":清空默认生成的邮件头,避免干扰原邮件的完整头信息formail -I "Subject: Submitted Spam":添加自定义主题,方便识别提交的邮件; cat:将原邮件内容作为附件插入到新构造的邮件中sendmail submit.[id]@spam.spamcop.net:将构造好的邮件发送至SpamCop的提交地址
内容的提问来源于stack exchange,提问作者Thomas Kujawa
相关产品推荐
相关产品推荐

