互联网博客
http://internet.blog.enorth.com.cn >复制 >收藏本站
首页 IT技术(99) 音视频(7) 汽车(6) 搜索引擎(2) 我的日志(34) 歌词(12) James(19) 笑话(10) Blog技术(4) 诗词歌赋(7)

北方博客 > 首页 > 用apache james做简单的垃圾邮件过滤网关
Google
3上一篇: 将James配置为需要身份认证的SMTP服务器 下一篇: 企业级邮件服务器Apache James介绍4
[James]用apache james做简单的垃圾邮件过滤网关
Tags: james 垃圾邮件 apache

网络环境如下:

三台服务器。
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版本的出现,能够提供更强大的功能。


字体:
引用地址 http://internet.blog.enorth.com.cn/article/30820.shtml


allenzz7 | 2006-03-01 11:33


发表评论
 
昵称
主页
标题
内容
算式的解
看不清校验算式?
 



 


公告

抗震救灾

众志成城

站内搜索

最新日志

linux 中文显示乱码解决办法
国足欢迎你
A780的快捷键图标设置
Jfreechart中画双Y坐标的折线图
在dwr的回调函数中传递多个参数
Lemon Tree
去掉jsessionid
Windows media encoder及其SDK编程说明
保留weblogic中jsp编译后生成的java文件
行为艺术家扮“房奴”抗议房产商(图)
DWR 调用返回值方法
民间节油“秘笈” “节油王”道出节油六高招
开车十五年心得!真真实实的26条教训!
ChannelSocket INFO: connection timeout reached
杭州干部徐新贤死了都要爱!
创业前请回答这些问题
Linux下让编译安装的Apache自动启动
IllegalStateException: getOutputStream() 异常的解决方案
LINUX下配置系统环境变量
Servlet图像处理 X11错误解决方法
解决winxp搜索不到文件中的某个字或词组的问题
夜的第七章
Linux下两种自动启动Tomcat的方法
使用mod_usertrack跟踪用户
apache2.0 prefork和worker模块性能调优

网友评论

Re:Apache-WebLogic plugin插件的安装
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个简单的DWR例子
Re:一个女人的十年 [录音+文字]
Re:一组照片
Re:一组照片
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:apache2.0 prefork和worker模块性能调优
Re:蒋捷《虞美人·少年听雨歌楼上》
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]
Re:一个女人的十年 [录音+文字]

我的链接

妮妮的世界
小宝成长日记
汽车维修、保养专业站

CSS2中文手册
SpringFramework中文论坛
以前的事 现在的事 将来的事
DynamicDrive
CSDN 金·评·没|YanHui's blog
tomcat 5.0 文档
sixsun的blog
王育琨专栏
西安信息资源网
[埃里克森]的Blog



flashplayer.cn

Apache HTTP Server Version 2.2 文档
天津一汽
Tortoise Cvs Homepage
天津博客
Java开源大全
OpenSymphony
Java视线论坛

网友留言

<写留言>
我们的感觉好比一个十年的女人
你的博客做得很棒
认识你好高兴
其实我也是学计算机的
你好,朋友!
你是不是搞程序的?
交朋识有
祝你新年快乐!
经常关注你的blog,希望有机会认识一下!
元旦快乐

站内统计

日志总数:200
今日访问:1289
访问总数:1145155
评论总数:324
留言总数:14

存档

2008年01月(1)
2007年12月(3)
2007年11月(2)
2007年10月(1)
2007年08月(2)
2007年07月(1)
2007年06月(3)
2007年05月(2)
2007年04月(5)
2007年03月(2)
2007年01月(2)
2006年12月(3)
2006年11月(1)
2006年09月(5)
2006年08月(2)
2006年07月(8)
2006年06月(7)
2006年05月(9)
2006年04月(13)
2006年03月(30)
2006年02月(23)
2006年01月(9)
2005年12月(12)
2005年11月(23)
2005年10月(23)
2005年09月(2)

控制台入口

用户名
密 码