再介绍一个跨平台的免费邮件服务器James

时间: 2010-04-03 / 分类: 邮件服务器 / 浏览次数: 5,127 / 2个评论 发表评论

james
JAMES,全称Java Apache Mail Enterprise Server,也叫Apache James,呃,跟apache web服务器没有啥关联,只是属于Apache项目下的一个子项目,基于Apache License开源,纯粹JAVA开发的,支持SMTP、POP3和NNTP网络新闻协议,NNTP跟我们无关,直接掠过,是不是没有看到IMAP?没关系,新的开发中的James 3.0已经加入了对IMAP的支持,目前最新版本是2.3.2,暂时还不支持IMAP。官方地址在http://james.apache.org,OK,老夫直接下载james-2.3.2的压缩包回来。
首先呢,你得安装JDK,这里是jdk 1.6版本的,呃,为了其他软件的支持,老夫这里是常备的,直接安装了,安装了jdk就简单了。

把james-2.3.2解压出来,老夫给它改个名james,进入james下的bin目录,看到一个run.bat没,在linux下要运行run.sh,双击run.bat,出现以下提示内容

Using PHOENIX_HOME: E:\james
Using PHOENIX_TMPDIR: E:\james\temp
Using JAVA_HOME:

Phoenix 4.2

James Mail Server 2.3.2
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service Disabled
FetchMail Disabled

好了,完了。操,这么简单?就这么简单,怎么说跨平台呢,只要你java运行坏境搞好了,直接运行就OK了。
当然,这只是说服务器运行起来了,配置可没这么简单,james的配置文件基本上都是xml文件,跟linux下的配置一样,都是改配置文件的内容,先说说其中几个特殊的概念,这些概念可能其他邮件服务器也有,只是名称叫的不一样。
SMTP、POP、NNTP咱就不说了,地球人都知道,首先是FetchMail,通过名称也大致能猜出它的意思,抓取邮件,也就是从其他的POP3服务器上抓取邮件咯,就是hmailserver中给每个账号设的外部邮箱。spoolmanage,spool我们在弄打印机的时候常看到,一般叫打印池什么的,池管理是啥意思呢,也差不多就是hmailserver中的传递队列,matcher呢,大概就是跟hmailserver中的规则差不多吧,还有个就是Repositories,仓储,邮件啊新闻啊账号什么的,一般是怎样存储的,这个james默认都是以文件方式存储的,但james既然叫enterprise server,企业用起来肯定数据是非常多的,如果都是以文件方式存储运行起来效率肯定是跟不上的,所以james还支持以数据库的方式来存储数据,它支持哪些数据库呢?一般啥oracle、db2、mysql、PostgreSQL、MSSQL等等一系列的,它都支持。最后还有一个RemoteManager,james服务器提供了超强大的远程管理的方式,呃,强大到你吐血,一个telnet服务,上去后输命令,也就是添加删除账号别名什么的,不禁令老夫大汗,呃,如果你很牛逼,可以直接去写后台管理软件吧,james的可扩展性是非常强大的。
先说运行吧,运行了run.bat后,出现个控制台窗口,如果你把它关闭了,james的服务也就停止了,如何让它后台运行呢?不可能每次我启动都要点run.bat啊,james提供了,在bin目录还有个文件,Wrapper.exe,试着在命令行下运行wrapper.exe /?,会列出一系列参数,其中-i参数就是安装一个java的nt server服务,-r就是移除咯。
还是来看配置,james目录下的apps\james\SAR-INF里有config.xml文件,用记事本打开编辑吧,最好是用EditPlus或notepad++之类的编辑工具,可以高亮显示需要配置的字段,括住的都可以不管,不过最好还是看看里面的详细说明,首先是第52行Postmaster@localhost,postmaster@localhost改一改咯,想改啥随便你,然后71行,自动侦测机器名和ip,关闭吧,把true改为false,紧接着下面的localhost,该改成什么不用老夫说了吧。
79行,,这个启用别名和转发什么的不去管它,83行,这个修改收件箱存放位置和存储方式,内容直接看接着下面的说明。
然后第552行的 relay-denied 550 – Requested action not taken: relaying denied,看名字也知道啥意思了,把这段话注释掉或删掉。
再774行DNS服务器,把注释符去掉,增加几个DNS服务器,再紧接着的是远程管理的配置,端口4555就是telnet端口,如果你不怕死可以改为telnet的默认23端口,省得每次telnet还要输入端口,然后下面,这是管理的账号密码,改掉呗。接着配置POP3服务,服务默认激活的,至于MyMailServer里的mymailserver都改成跟前面的servername字段里的一样,也就是你的域名。接下来是smtp服务,前面跟pop3的一样配置,只是把smtp发送验证打开,true,下面的根据需求再设置呗,至于nntp服务嘛,老夫直接把true改为false了,不让它启动,至于下面的一些啥的,没啥好说的了,咱不是完整的写手册,要看手册到官方网站去看,那些鸟语哥也看不太明白。
OK了,基本配置完了,关掉那个控制台,重新运行run.bat,邮件服务器就运行起来了。
怎么用?foxmail、outlook伺候呗,webmail?没有,再次隆重推出AfterLogic webmail lite咯,还是wamp,还是php版,不知道咋玩?看哥的另一篇《简单好用的免费邮件服务器hMailServer》,不过要记住一点,james登陆时候的账号名根本不需要像hmailserver那样连着域名输入,直接输账号就行了,所以在AfterLogic webmail管理界面配置的时候,如果照着那篇文章,有个钩钩千万别勾,哥就是在那里登了半小时没登进去,把那个勾去掉就OK了。
fetchmail的配置在apps\james\conf\james-fetchmail.xml里配置,哥就不多说了。
至于怎么沟通外网,哥现在暂没时间深究了,看泥人老兄愿不愿意去测试写更详细了,哥还得去做固定资产盘点。
最后,祝各位哥们清明节快乐,嚯嚯~~~

2个评论

  1. ryback
    2010/04/08 18:16:40

    我最近一两个月也忙呃

  2. 泥人
    2010/04/08 14:47:16

    你多发现些出来。我肯定会写的。。我专门做邮件服务器的测评。。只是目前一个月左右忙。。没有空,过了这段时间。就可以保证了。

发表评论

您的昵称 *

您的邮箱 *

您的网站