最近由于项目的需要,要求在服务上实现自己的邮件服务器,上网查了一下,发现一个叫james的,纯java的邮件服务器,于是就下载来试试看,下载后直接解压。我的是for linux版的,也就是james-binary-2.3.1.tar.gz这个,可以到官网那里下。
解压后就上传到服务器上,上传后,登录到服务器,在终端里输入:lsof -i:25来看看25的端口是否已经有人占用了,如果有的话就停了它吧。由于我安装的是suse server 10这个版本,在安装的时候已经选上了email服务器的,所以已经给我安装上了postfix这个邮件服务器,当时在运行james时会的报错,查看了一下错误信息,说是端口已经被占用。上网查了才知道,要先停了postfix才可以。需要停止postfix的话,可以输入postfix stop这个命令。另外后面可以跟start,restart这几个参数的。
如果能正常james的话会显示以下的内容:
Using PHOENIX_HOME: /home/james
Using PHOENIX_TMPDIR: /home/james/temp
Using JAVA_HOME: /usr/jdk1.6.0_06
Running Phoenix:
Phoenix 4.2
James Mail Server 2.3.1
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service started plain:119
FetchMail Disabled
启动后,就可以再按ctrl+c来退出james了。因为james要运行一次之后才会在你放置james的根目录下的/apps下生成一个james这样的文件夹,在这个文件夹下/SAR-INF/config.xml这样的文件,在对这个config.xml文件里的配置作出以下几个地方的修改:
1,更改你邮件服务器的后缀名,将autodetect及autodetectIP设为false,不自动探测。
<postmaster>[email protected]</postmaster>
<servernames autodetect="false" autodetectIP="false"> <servername>aorta-show.com</servername>
2,找到以下这段代码并注释掉
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet>
3,找到以下代码解除注释,用来开启验证的。
<authRequired>true</authRequired>
4,找到以下这段代码并注释掉,如果这段不注释的话,就可能会发生只能在内部收发邮件及发送到外网的邮箱中,如163,qq之类的。但不能收到由这些外网邮箱发给你的邮件。这个需要注意
<mailet match="InSpammerBlacklist=dnsbl.njabl.org." class="ToProcessor">
<processor> spam </processor>
<notice>550 Requested action not taken: rejected - see http://njabl.org/ </notice>
</mailet>
5,更改你的管理员密码,默认的管理员用户名是root,密码也是root的。更改为你想设置的问题
<account login="root" password="ilikethegame"/>
6,更改你的dns ip地址:
<dnsserver>
<servers>
<server>你服务器的IP地址</server>
</servers>
<autodiscover>true</autodiscover>
<authoritative>false</authoritative>
<maxcachesize>50000</maxcachesize>
</dnsserver>
其它的就直接使用默认值即可。上传这个修改后的config.xml到linux上,重启james,在终端里输入:
./home/james/bin/run.sh
我的james是放置在home目录下的。如果出现权限不足的问题,可以输入chmod 777 james来更改权限。
运行后没异常则会出现上述的代码。
最后,打开你的客户端,我的是xp系统,在dos窗口里输入:
telnet 服务器的IP地址 4555
连接到james,输入你的用户名(root),再输入你的密码,回车。登录到james上,添加一个用户,如admin,命令为:
adduser admin admin123
成功的话会提示添加用户成功这样的。
然后打开foxmail,新增一个帐户,将邮件服务器的smtp,pop3等设置为你服务器的IP,不用设置端口。pop3的用户为刚设置的admin,再输入密码后,确定退出。(这里为了测试,所以直接用foxmail)
至此,一个以你自己作后缀名的邮件地址已经横空出世了。
赶紧试试吧!
当然,这是一个最简单可运行的例子,如果需要连接到数据库及动态的添加用户等实现一个webmail的话,还有N多地方要做的,写这个是为了让自己记住及给一些像我这样的新手来做参考的。如果你有一个更完整的例子,希望你能共享一下,这样,我就可以少足许多弯路了。呵呵!