CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

用apache james做简单的垃圾邮件过滤网关

作者: ,  出处:IT专家网, 责任编辑: 金璞, 
2007-11-01 11:25
  经过配置运行,现在domino服务器无法再会被外网的人利用起来进行垃圾邮件的发送了。这样保证了domino服务器的稳定,也省下了买专门的邮件网关的开销。

  网络环境如下:

  三台服务器。

  1.网关,公网IP

  2.domino邮件服务器。

  3.另一台服务器。

  通过把网关的端口25,映射到domino服务器上,让domino服务器可以收发邮件。同时domino服务器还要把部分邮件转发到服务器3上。

  大家的发邮件smtp统一是domino服务器。由于domino过滤垃圾邮件服务器的功能不强,并且,为了实现转发邮件,因此domino服务器被迫取消了smtp验证,即使用open reply模式。

  在这种情况下,自从服务器被人盯上用来进行垃圾邮件发送和中转之后,给服务器的性能带来很大影响,也影响了正常邮件的收发。

  Apache James是个非常优秀的邮件服务器。由于实际情况的特殊,没有办法通过简单的配置来同时不发送垃圾邮件和正常转发邮件到domino服务器,在察看james文档之后,通过实现mailets接口来做到了这件事情。

  现在的网络配置如下。

  增加一台服务器,运行james,邮件域名和domino的一致。(因为域名一致,所以无法使用james内置的forward,才需要自己来实现邮件发送功能);修改james的配置信息,使之需要smtp验证,网关端口25映射到james服务器的25端口上。我增加了一个james matcher。来匹配邮件并进行发送到domino服务器。

  大致代码如下:

 private String domain = "lizongbo.com";
 public Collection match(Mail mail) throws MessagingException {
        if ((mail.getSender().toString().indexOf(this.getDomain()) > 0)) {
            System.out.println("收到来自" + mail.getSender() + "的邮件");
            String path = "mailsavein/" + System.currentTimeMillis()
                          + ".txt";
            savemail(mail, path);
            JavaMailSender jms = new JavaMailSender();
            jms.sendmail(path);
        }
        for (Iterator i = mail.getRecipients().iterator(); i.hasNext(); ) {
            MailAddress rec = (MailAddress) i.next();
            if (rec.toString().indexOf(this.getDomain()) > 0) {
                System.out.println( "收到" + mail.getSender()
                                   + "一封发给" + rec + "的邮件");
                String path = "mailsavein/" + System.currentTimeMillis()
                              + ".txt";
                savemail(mail, path);
                JavaMailSender jms = new JavaMailSender();
                jms.sendmail(path);
            }
        }
        return mail.getRecipients();
    }

  经过配置运行,现在domino服务器无法再会被外网的人利用起来进行垃圾邮件的发送了。

  这样保证了domino服务器的稳定,也省下了买专门的邮件网关的开销。

  通过对james的扩展,还可以实现很多更强大的垃圾邮件过滤,杀毒过滤,与SpamAssasin结合进行垃圾邮件过滤等等。

  具体可以参考:http://wiki.apache.org/james

  由于james使用的开发框架avalon落后,已经被apache终止。因此james3.x版本需要大的改动和升级,期待3.0版本的出现,能够提供更强大的功能。

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i