设为首页 收藏本站
查看: 904|回复: 0

[经验分享] Apache James 邮件服务器二次开发

[复制链接]

尚未签到

发表于 2017-1-6 08:51:10 | 显示全部楼层 |阅读模式
  apache james 作为一个成品,基本上我们不需要做任何开发。但是,有时候我们需要做某些特殊控制,例如:1.在config.xml上面指定每封邮件只能带上10M的附件,但是老总要特殊对待,怎么弄呢?只能对源码进行重新修改。2.现在james在adduser的时候密码是经过加密的,但是我们不需要它进行加密,怎么办呢?同样只能修改源码。
  在对james做二次开发的时候我们需要准备一些东西:
  1. james 的源码,在apache上面可以下载
  2. ant ,因为没有ant,你改完后没办法打包。
  3. jdk1.5 的任何版本
  准备好这些东西后,我们可以进行二次开发了!
  这次我就要修改发送邮件带附件的问题,只能某些人能够不限量,其他人都是只有10m。统一限制肯定在config.xml上面配置了,至于某些人不限量,我们需要写死在代码里面。
  由于时间关系,我这里直接说是修改那个类就好了,打开org.apache.james.smtpserver.DataCmdHandler ,在123行进行一下修改

if (maxMessageSize > 0) {  
if (getLogger().isDebugEnabled()) {   
StringBuffer logBuffer =   
new StringBuffer(128)   
.append("Using SizeLimitedInputStream ")   
.append(" with max message size: ")   
.append(maxMessageSize);   
getLogger().debug(logBuffer.toString());   
}   
/*这里就是控制生成msgIn的,如果穿进去的文件的byte > maxMessageSize ,返回的对象进行调用就会有问题*/   
if("test3@fengyongsen.com".equals(session.getState().get(SMTPSession.SENDER).toString())){   
msgIn = new DotStuffingInputStream(msgIn);   
}else{   
msgIn = new SizeLimitedInputStream(msgIn, maxMessageSize);   
}   
}   

  修改完后,将这个java文件覆盖到james源码包相应的地方。
  然后运行ant编译!如果在运行ant编译的时候出现异常,ok!这时候我们需要带eclipse帮我们编译。将james的所有java文件和lib包全部弄到eclipse里面,编译好后,将class文件拷贝到 james 源码包下面的build\classes 目录下,然后再次运行ant,这次就不会出现错误了!
  打好包后,我们会发现james源码目录下面会有一个叫 dist 的文件夹,这就是我们的james的邮件服务器,修改一下config.xml 配置文件就可以用,如果你原来已经有一个正在运行的james ,直接把 dist包下面的 james-2.3.2\apps\james.sar 覆盖过去即可重启使用!
  在windows 二次开发james 调试工作比较郁闷,建议在linux下面开发,调试也比较简单! 因为phoenix 只能运行在 linux

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324483-1-1.html 上篇帖子: apache-httpd2.2.17性能测试 下篇帖子: 安装和配置Apache + mongrel cluster
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表