[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 报告 spam 的方法



我找到一篇文章讲在procmail中处理中文的,地址如下(可能需要用代理)
http://my.opera.com/Leira/blog/show.dml/181213
我自己水平有限,不会弄procmail,但可能对你 "在 body 里添上一些垃圾邮件的中文信息" 有帮助,所以全文引用如下:

Tips: procmailrc规则中的中文处理

Thursday, 16. March 2006, 05:26:20


procmail有很方便的基于正则表达式的规则,非常强大。处理英文字段自然OK,可是处理中文字段呢?直接打中文恐怕是肯定不可以了。比如分类Subject段包含"中国"的规则,如果写成:

* ^Subject.*中国

那就找不到了。因为procmail直接处理邮件文本,而邮件文本都是编码过的,Subject段是肯定不会直接出现"中国"字样。一般邮件内容的编码常用的有两种,QuotedPrintable和Base64,下面分开说。

QuotePrintable

用文本编辑器直接打开mbox文件,在Subject段看到

=?utf-8?Q?Goowy=e9=82=ae=e4=bb=b6=e6=9c=8d=e5=8a=a1=e7=9a
=84flash=e7=95=8c=e9=9d=a2_=5bFlickr=5d?=

这样都是=间隔的,就是QuotePrintable编码了,其中头部=?utf-8?Q?中的Q也指出了这儿用的是QuotePrintable编码,utf-8不用解释,就是文本是utf-8编码的。以上的Subject段解码后是:

Goowy邮件服务的flash界面_[Flickr]

对于QuotePrintable的Procmail规则就比较简单,直接根据关键字的编码,加入=号间隔就可以了。比如我们查找关键字"服务",对应的utf-8序列是

0xe69c8d 0xe58aa1

,一般中文自的utf8编码都会是3个字节,那么对应的就是

=e6=9c=8d=e5=8a=a1

,规则可以这么写:

* ^Subject.*=e6=9c=8d=e5=8a=a1

对于GB系列编码也是一样,只是每个汉字就是两个字节,而不是三个了。


Base64

Base64的嘛,hoho,再研究研究~ 等下回吧~

以上为原文。

On Jan 8, 2008 6:35 PM, Nickel Cobalt <angelerosster@gmail.com> wrote:
> On Jan 8, 2008 7:49 AM, Ming Hua <minghua@rice.edu> wrote:
> >
> > 有人熟悉 SpamAssassin 或是 procmail 的可以写个过滤规则出来吗?似乎最近这
> > 批 spam 都是从集中几个地址发出来的。
> >
>
> :0
> * ^From: .*(
>
> yahoo\.com\.cn|\
> Wjmyl|\
> tom\.com|\
> 163\.com)
> /dev/null
>
> 放这个到 ~/.procmailrc 里面,这样要好点。
> 后果是,凡在 from 里带有上述字眼的邮件会被全部删掉的。
> 不想这样的话,那就把具体的邮件地址放进去。不过,我发现这些垃圾邮件的地址老是变,我也没有太好的办法了。
> 除了用这个,我还在 gmail 里设置了一下,手工选上一些垃圾邮件。
> 唉,我是没有太好的办法了。 procmail 不认得中文,要认得的话就能在 body 里添上一些垃圾邮件的中文信息了。
>

Reply to: