ORF反垃圾邮件系统

邮件服务器-邮件系统-邮件技术论坛(BBS)

 找回密码
 会员注册
查看: 9737|回复: 0
打印 上一主题 下一主题

《一个用于qmail-qfilter的附件过滤脚本》★

[复制链接]
跳转到指定楼层
顶楼
发表于 2003-6-23 15:22:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
★原文转载自openbsd版zenz.hu的《一个用于qmail-qfilter的附件过滤脚本》★<br>
qmail-qfilter是一个不错的邮件过滤工具呢,随tarball有2个用perl写的例子,一个是禁止邮件附带某种附件,另一个是凡是附带了某一类附件的,就自动改名,但是改名的一个程序,有一点小问题,不能正确运作。 <br>
下面是一个我修改后的改附件名的perl脚本,经过测试,在OpenBSD 3.0+Qmail-1.03+Vpopmail-5.0.1+qmail-qfilter-1.5下面正常运作,Client只测试过FoxMail 4.x和Outlook Express,能够同时处理uuencode的邮件和mime 64 encode的邮件。如果您在使用测试中遇到什么问题,请告诉我。 <br>
<br>
#!/usr/bin/perl <br>
<br>
sub check_filename { <br>local($_) = @_; <br>s/"//g; <br>$_ .= ".scan" if /\.(chm|com|bat|exe|hlp|scr|hta|pif|reg|scr|shs|vbe|vbs|wsf|wsh)$/oi; <br>return $_; <br>
} <br>
<br>
sub parse_content_td { <br>local($_) = @_; <br>chomp; <br>s/\s+/ /go; <br>s/([;\s](file)?name\s*=\s*)(("[^"]+")|\S+)/$1 ."\"" . check_filename($3) . "\""/e; <br>return $_; <br>
} <br>
<br>
sub get_boundary { <br>local($_) = @_; <br>chomp; <br>s/\s+//go; <br>s/boundary=//go; <br>s/\"//go; <br>return $_; <br>
} <br>
<br>
while (<>) { <br>
<br>
# deal with uuencode email. <br>
<br>$uuencode = $_ if /^begin\s+\d+\s+(.*)\s*$/oi; <br>if ($uuencode) { <br>
chomp; <br>print &check_filename($_) . "\n"; <br>
undef $uuencode; <br>
next; <br>} <br>
<br>
# deal with mime64 encode email. <br>
<br>if ($content_td) { <br>
if (/^\s*$/o || /^\S/o) { <br>print; <br>undef $content_td; <br>
} else { <br>print &parse_content_td($_) . "\n"; <br>next; <br>
} <br>} else { <br>print; <br>} <br>$content_td = $_ if /^Content-(Type|Disposition):\s*(.*)$/oi; <br>
} <br>
<br>
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

小黑屋|手机版|Archiver|邮件技术资讯网

GMT+8, 2024-12-28 02:20

Powered by Discuz! X3.2

© 2001-2016 Comsenz Inc.

本论坛为非盈利中立机构,所有言论属发表者个人意见,不代表本论坛立场。内容所涉及版权和法律相关事宜请参考各自所有者的条款。
如认定侵犯了您权利,请联系我们。本论坛原创内容请联系后再行转载并务必保留我站信息。此声明修改不另行通知,保留最终解释权。
*本论坛会员专属QQ群:邮件技术资讯网会员QQ群
*本论坛会员备用QQ群:邮件技术资讯网备用群

快速回复 返回顶部 返回列表