psh2000 发表于 2008-2-2 16:05:15

我有一个新的WINWEBMAIL垃圾邮件网关的思路

在WINWEBMAIL的二次开发中有应该有1个获取某用户下所有邮件ID的一个方法
然后我把每个邮件的来源IP都进行CBL查询。如果判断为垃圾IP。那就直接用二次开发的移动到垃圾箱或者删除邮件的方法把邮件处理掉

程序每分钟运行1次。这样就不用定期更新什么KILL.ini了。而且及时性也非常的高。耗用的CPU资源也非常低。
因为主要的判断查询过程已经不需要WINWEBMAIL进行处理了。
而且程序会记录经过判断的邮件ID。那就不会对已经处理过的信息重新进行判断。
程序要做的就是列出新邮件。并做CBL查询。然后再处理邮件

正在努力寻找相关接口。正准备做一个。

[ 本帖最后由 psh2000 于 2008-2-2 16:07 编辑 ]

ideacm 发表于 2008-2-2 16:07:39

想法相当不错
顶一个
3.7.6.1防垃圾邮件相对以前版本好了很多了

psh2000 发表于 2008-2-2 16:10:26

我的思路,其实完全可以实现WINWEBMAIL接收所有的邮件。包括垃圾邮件都全收下来。然后再对邮件做处理。。
除非在处理之前就已经有人把邮件通通收了下来。
这就没办法了。。

psh2000 发表于 2008-2-2 21:24:50

$EmailInfo = new COM("easymail.InfoList");
$EmailInfo->LoadMailBox("checkmail@aaa.net","in");
echo $EmailInfo->getMailsCount;

以上是一段根据listmail.asp里面部分代码转成PHP的一小段代码,作用是读取邮件数量
但在PHP执行后,获取到的邮件数为0。

老马的easymail.dll是不是做了什么限制啊?不允许这样二次开发?

tdk 发表于 2008-2-2 23:44:42

不是很明白

每个邮件的来源IP怎么理解?
一个邮件经过多次转发走过的所有ip?

另外?cbl rbl ,邮件服务器传输握手后不久是要做这个工作了吗?
怎么还要2次开发做?

不太了解这个系统,冒昧询问

psh2000 发表于 2008-2-3 00:06:52

CBL RBL不是邮件服务器,只是一个IP查询系统。对于垃圾邮件来源IP会返会一个状态码
但WINWEBMAIL没有这个步骤,只有查询来源IP是否在WINWEBMAIL的IP黑名单之中,
而且如果WINWEBMAIL的黑名单一但多起来。这个判断是很耗资源的。
以前我做过1个定期自动更新黑名单IP列表的程序,整个服务器运行起来极慢。

甚至我可以说。除非现在论坛上那个免费邮件网关的服务器超强,或者黑名单IP数不多,这没什么影响。
一旦多起来。再怎么优化都是一个非常耗资源的东西。

比如有黑名单中有2W个IP,那每封邮件就需要循环2W次去查找。所以这个不是好方法哦。

我是想让WINWEBMAIL实时的查询CBL,所以。才要用到二次开发。

chinaliuqi 发表于 2008-2-3 19:39:18

看了PSH2000的帖子
我大致理解如下,不知道对不对。

你所说的实际上是丰富了一个 邮件过滤 【自动将来信进行分检和处理】过程,这个在WINWEBMAIL个人选项中已经有了,但是如何从RBL的DNS中查询并对比IP地址,和返回值,这是你首要解决的关键问题。

我有几个疑问需要提一下

1 即使在你能够成功的对比RBL列表,并成功将邮件转移至垃圾箱时,你有多大把握判断这封邮件的确是垃圾邮件?
2 如果你想获取并对比RBL列表时,你可曾想过RBL列表的数据库很庞大?一封一封对比恐怕这个需要耗费很长时间。
3 假设这种形式可以成立,你改如何解决from 127.0.0.1这类的垃圾邮件?

我有几个建议给你

1.CBL不能作为首选,因为其局限性较大,如果单独采用RSYNC来同步数据,速度相当慢!并且你无法最先知道其更新内容。所以如果要单纯通过IP来判断,你需要建立一个自己的黑名单。这应该是一个数据库,以便后期开发client mai servr 获取黑名单的数据来源,这方面的工作,我做过一些,但是效果非常不理想,效率极其的低。

2.正确理解网关形式的反垃圾邮件策略

3.建议想办法收集垃圾邮件样本,丰富自己的黑名单。

4.尽量简化操作和后期维护工作

5.强大的日志功能 以便出问题后 可以很快找到问题解决办法

6.通用性 实用性 易用性 结合在一起考虑!
http://spam.newhi.net   

这里总共种方式,第一种被动防御(CBL列表) 第二种主动防御(反垃圾邮件网关)

现在反垃圾邮件网关 日垃圾邮件处理能力 可以在500万封左右 CPU消耗不超过15%

有兴趣,可以一起探讨这些问题!

[ 本帖最后由 chinaliuqi 于 2008-2-3 19:43 编辑 ]

psh2000 发表于 2008-2-4 05:01:20

ping 153.68.195.209.cblplus.anti-spam.org.cn
你试试从命令行运行这个语句。
会返回到一个IP地址

以上语句是检测209.195.68.153是否垃圾IP,当这个IP是垃圾IP的时候。PING能返回一个IP地址。
然后比如有1个IP:111.112.113.114这个IP是正常IP。
你再试一下PING 114.113.112.111.cblplus.anti-spam.org.cn
你会发现返回不了IP。也就是说他没在CBL中。

所以只要检查IP是否为垃圾IP。其实最简单就是模拟PING的过程。就可以实现。
用程序实现这个不难吧?

psh2000 发表于 2008-2-4 05:14:58

我不是说你的那个反垃圾网关不好
但由于那个涉及到邮件内容泄露。所以。不建议跟这个问题搭上关系
另外,如果把列表放到本地。列表一多起来。那是很占资源的事。
所以我才提议这种介于两者之间的方式:
1、本地判断,不涉及内容泄露
2、解决因IP列表庞大而造成的资源损耗

chinaliuqi 发表于 2008-2-4 07:25:53

1 即使在你能够成功的对比RBL列表,并成功将邮件转移至垃圾箱时,你有多大把握判断这封邮件的确是垃圾邮件?
2 如果你想获取并对比RBL列表时,你可曾想过RBL列表的数据库很庞大?一封一封对比恐怕这个需要耗费很长时间。
3 假设这种形式可以成立,你改如何解决from 127.0.0.1这类的垃圾邮件
页: [1] 2
查看完整版本: 我有一个新的WINWEBMAIL垃圾邮件网关的思路