您的位置:首页 > 运维架构 > Apache

在linux上用apache james架设邮件服务器(转)

2014-04-11 13:49 260 查看
最近由于项目的需要,要求在服务上实现自己的邮件服务器,上网查了一下,发现一个叫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的话会显示以下的内容:
Java代码

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

Using PHOENIX_HOME: /home/jamesUsing PHOENIX_TMPDIR: /home/james/tempUsing JAVA_HOME: /usr/jdk1.6.0_06Running Phoenix: Phoenix 4.2 James Mail Server 2.3.1Remote Manager Service started plain:4555POP3 Service started plain:110SMTP Service started plain:25NNTP Service started plain:119FetchMail Disabled
启动后,就可以再按ctrl+c来退出james了。因为james要运行一次之后才会在你放置james的根目录下的/apps下生成一个james这样的文件夹,在这个文件夹下/SAR-INF/config.xml这样的文件,在对这个config.xml文件里的配置作出以下几个地方的修改:
1,更改你邮件服务器的后缀名,将autodetect及autodetectIP设为false,不自动探测。
Xml代码

<postmaster>Postmaster@aorta-show.com</postmaster>

<servernames autodetect="false" autodetectIP="false"> <servername>aorta-show.com</servername>

<postmaster>Postmaster@aorta-show.com</postmaster><servernames autodetect="false" autodetectIP="false"> <servername>aorta-show.com</servername>
2,找到以下这段代码并注释掉
Xml代码

<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">

<processor> relay-denied </processor>

<notice>550 - Requested action not taken: relaying denied</notice>

</mailet>

<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"> <processor> relay-denied </processor> <notice>550 - Requested action not taken: relaying denied</notice></mailet>
3,找到以下代码解除注释,用来开启验证的。
Xml代码

<authRequired>true</authRequired>

<authRequired>true</authRequired>
4,找到以下这段代码并注释掉,如果这段不注释的话,就可能会发生只能在内部收发邮件及发送到外网的邮箱中,如163,qq之类的。但不能收到由这些外网邮箱发给你的邮件。这个需要注意
Xml代码

<mailet match="InSpammerBlacklist=dnsbl.njabl.org." class="ToProcessor">

<processor> spam </processor>

<notice>550 Requested action not taken: rejected - see http://njabl.org/ </notice>

</mailet>

<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的。更改为你想设置的问题
Xml代码

<account login="root" password="ilikethegame"/>

<account login="root" password="ilikethegame"/>
6,更改你的dns ip地址:
Xml代码

<dnsserver>

<servers>

<server>你服务器的IP地址</server>

</servers>

<autodiscover>true</autodiscover>

<authoritative>false</authoritative>

<maxcachesize>50000</maxcachesize>

</dnsserver>

<dnsserver> <servers> <server>你服务器的IP地址</server> </servers> <autodiscover>true</autodiscover> <authoritative>false</authoritative> <maxcachesize>50000</maxcachesize> </dnsserver>
其它的就直接使用默认值即可。上传这个修改后的config.xml到linux上,重启james,在终端里输入:
Java代码

./home/james/bin/run.sh

./home/james/bin/run.sh
我的james是放置在home目录下的。如果出现权限不足的问题,可以输入chmod 777 james来更改权限。
运行后没异常则会出现上述的代码。
最后,打开你的客户端,我的是xp系统,在dos窗口里输入:
Java代码

telnet 服务器的IP地址 4555

telnet 服务器的IP地址 4555
连接到james,输入你的用户名(root),再输入你的密码,回车。登录到james上,添加一个用户,如admin,命令为:
Java代码

adduser admin admin123

adduser admin admin123
成功的话会提示添加用户成功这样的。
然后打开foxmail,新增一个帐户,将邮件服务器的smtp,pop3等设置为你服务器的IP,不用设置端口。pop3的用户为刚设置的admin,再输入密码后,确定退出。(这里为了测试,所以直接用foxmail)
至此,一个以你自己作后缀名的邮件地址已经横空出世了。 赶紧试试吧!
当然,这是一个最简单可运行的例子,如果需要连接到数据库及动态的添加用户等实现一个webmail的话,还有N多地方要做的,写这个是为了让自己记住及给一些像我这样的新手来做参考的。如果你有一个更完整的例子,希望你能共享一下,这样,我就可以少足许多弯路了。呵呵!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: