主题: 关于灰名单替代方案的讨论

灰名单的缺点:
1、延迟接收
2、很可能收不到正常邮件
3、为了正常接收还要人工添加白名单。

替代想法:
目前垃圾邮件([SPAM])识别率还算比较高,能否默认将所有垃圾邮件默认扔到垃圾箱,
系统每天自动执行删除3个月前的在垃圾箱的邮件。

好处:
不漏一封邮件。同时垃圾邮件也会定期得到自动清理。
这样可以去掉灰名单的功能。

-------------------------------------------
哈哈,其实gmail应该就是这样处理的。我刚接触邮件系统,配置不是很熟悉。
有熟悉的可以讲下配置方法。
我想大部分的公司boss都不怎么喜欢灰名单的功能。

回复: 关于灰名单替代方案的讨论

嗯,cityhunter 的回复确实可以解决你提的几个问题。

关于灰名单的“改造”相关的事情,我个人不太赞同楼主的思路。这里说说我的观点。

反垃圾,应该分析的是垃圾邮件的规律,然后根据这样的规律来探索反垃圾的可行性。
而 greylist 无疑是目前相当有效的反垃圾功能,因为它抓住了垃圾邮件一般只投递一次这样的规律。

至于你说的灰名单的三个缺点,确实都存在,而且就是因为 greylist 为了对付垃圾邮件只投递一次这样的规律设计的。

替代想法:
目前垃圾邮件([SPAM])识别率还算比较高,能否默认将所有垃圾邮件默认扔到垃圾箱,
系统每天自动执行删除3个月前的在垃圾箱的邮件。

好处:
不漏一封邮件。同时垃圾邮件也会定期得到自动清理。
这样可以去掉灰名单的功能。


去掉 greylist 之后,进入你的邮件系统的垃圾邮件会大幅增加,而基于内容进行过滤的 after-queue 反垃圾工具通常都很耗内存等系统资源。你的系统的绝大部分资源将奋战在内容过滤上。性能和反应速度都将大打折扣。这是我们在设计邮件系统整体架构的时候就需要考虑好的。

我的目标和你是相反的,争取去掉 SpamAssassin 这一类 after-queue 的反垃圾工具。

哈哈,其实gmail应该就是这样处理的。我刚接触邮件系统,配置不是很熟悉。
有熟悉的可以讲下配置方法。
我想大部分的公司boss都不怎么喜欢灰名单的功能。


gmail 具体如何处理,我们都无法得知,所以也就不去猜测了。

但是我想说的是,目前来看,没有可以让你一劳永逸的邮件服务器方案(目前开源领域似乎是这样的),系统管理员还是必须做一些额外工作的--iRedMail 已经将系统管理员的工作量降到最低了。

回复: 关于灰名单替代方案的讨论

谢谢前辈的解答。

二楼的方法可以解决我的问题。
但是有个问题比较麻烦

# Per-user sieve mail filter.
plugin {
    # NOTE: %variable expansion works only with Dovecot v1.0.2+.
    # For maildir format.
    sieve = /home/vmail/sieve/%Ld/%Ln/.dovecot.sieve
}

# LDA: Local Deliver Agent
protocol lda { 
    postmaster_address = root
    auth_socket_path = /var/run/dovecot/auth-master
    #mail_plugins = cmusieve quota expire
    mail_plugins = cmusieve quota
    sieve_global_path = /home/vmail/.dovecot.sieve
    log_path = /var/log/sieve.log
}

sieve 插件不能与 lda 同时处理,意味着我不能通过全局sieve,强制使得所有用户处理[SPAM]。

http://wiki.dovecot.org/LDA/Sieve中说道,sieve 中有include功能,但是也不好调整。

[ 本帖最后由 e345 于 2009-4-16 10:58 编辑 ]

回复: 关于灰名单替代方案的讨论

http://wiki.dovecot.org/LDA/Sieve中说道,sieve 中有include功能,但是也不好调整。


试试在全局的 sieve 规则文件里加下面这句,应该可以解决:

require ["include"];

include :personal ".dovecot.sieve";

回复: 关于灰名单替代方案的讨论

问题是用户有personal规则的时候,好像根本不会理会全局的规则了(这个我测试过了)

那您说的这个方法还有效吗?

回复: 关于灰名单替代方案的讨论

你测试过了么?

回复: 关于灰名单替代方案的讨论

# Per-user sieve mail filter.
plugin {
    # NOTE: %variable expansion works only with Dovecot v1.0.2+.
    # For maildir format.
    sieve = /home/vmail/sieve/%Ld/%Ln/.dovecot.sieve
}

# LDA: Local Deliver Agent
protocol lda { 
    postmaster_address = root
    auth_socket_path = /var/run/dovecot/auth-master
    #mail_plugins = cmusieve quota expire
    mail_plugins = cmusieve quota
    sieve_global_path = /home/vmail/.dovecot.sieve
    log_path = /var/log/sieve.log
}

我测试了这个配置,没有测试include的使用。
测试结果是:
先假设用户配置用 A 表示 /home/vmail/sieve/%Ld/%Ln/.dovecot.sieve ,
  假设全局配置用 B 表示 /home/vmail/.dovecot.sieve
1、A不存在,B存在的结果为:
    以B规则为准
2、A存在,B不存在的结果为:
    以A规则为准
3、A存在,B存在的结果为:
    以A规则为准

所以你说的include方法,可能也不好实现。
因为 A 的配置是由roundcube出的sieve插件控制的基本不会去手工修改,所以不能用include去包含全局的。
如果只配置B, 让B使用include特性,但是当A存在的时候,似乎就应该不会去理会B了。

如果用include方法,还请老大详细讲解下如何配置。

[ 本帖最后由 e345 于 2009-4-16 18:31 编辑 ]

回复: 关于灰名单替代方案的讨论

你将下面这个用户的 sieve 设置全部注释掉,再试试 include,应该就 OK 了:

# Per-user sieve mail filter.
plugin {
    # NOTE: %variable expansion works only with Dovecot v1.0.2+.
    # For maildir format.
    sieve = /home/vmail/sieve/%Ld/%Ln/.dovecot.sieve
}

注意,有些行为(例如 discard)会导致邮件不再往下走,所以后面的规则都会被忽略。

回复: 关于灰名单替代方案的讨论

%Ld/%Ln/
这个用来指定目录啊,要是全注释了include就不知道用户目录在哪里啊?

回复: 关于灰名单替代方案的讨论

原帖由 e345 于 2009-4-16 21:49 发表 http://www.iredmail.org/bbs/images/common/back.gif
%Ld/%Ln/
这个用来指定目录啊,要是全注释了include就不知道用户目录在哪里啊?


为何不先试试呢?有问题再一起解决?