1 最后由 sailer.shen (2014-06-19 16:25:06) 编辑

主题: 分享一下:拒收垃圾邮件

==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.8.1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):mysql
- 使用的 Linux/BSD 发行版名称及版本号:centos 6.0 x64
- 与您的问题相关的日志信息:
====
关于添加黑名单拒收垃圾邮件的做法似乎有很多,我分享一下我的做法,可能不是最好的办法,欢迎大家提出意见和建议。

在/etc/postfix/main.cf里修改smtpd_recipient_restrictions语句,红色字体是我增加的部分:
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, check_policy_service
inet:127.0.0.1:7777, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_policy_service inet:127.0.0.1:
10031, check_sender_access regexp:/etc/postfix/checks-rule/sender_checks

手工生成/etc/postfix/checks-rule/sender_checks文件:

/^(abc\.com)$/  REJECT

或者在“REJECT”后面加一段注释,这段注释会出现在给对方的退信中:

/^(abc\.com)$/  REJECT ACCESS DENIED. Mail was rejected

再生成db文件:

postmap hash:/etc/postfix/checks-rule/sender_checks

重启postfix服务,再从abc.com发来的邮件会被直接退回。

回复: 分享一下:拒收垃圾邮件

这样不如直接在 Policyd/Cluebringer 里添加黑白名单。

回复: 分享一下:拒收垃圾邮件

感谢张大的指点。
我看了一下关于Policyd里添加黑白名单的文档,的确是比较简单,就是在policyd库的blacklist表和blacklist_sender表里加入IP或域名。
我的理解,blacklist_sender是禁止某个域向我的mail server发邮件,blacklist是禁止我的mail server向某个邮件/域发邮件过去,这样理解对吗?

回复: 分享一下:拒收垃圾邮件

参考官方文档: http://policyd.sourceforge.net/readme.html

回复: 分享一下:拒收垃圾邮件

刚才仔细读了这个readme文档,基本搞清楚了。
blacklist用于以IP形式禁止,blacklist_sender以email地址形式禁止(也可以用@abc.com形式),blacklist_dnsname以域名方式禁止(比如像mail.126.com这样的形式)。
这个文档很有帮助。
谢谢张大。