六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 1461|回复: 0

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

[复制链接]

升级  54.33%

109

主题

109

主题

109

主题

举人

Rank: 3Rank: 3

积分
363
 楼主| 发表于 2013-2-7 13:28:49 | 显示全部楼层 |阅读模式
最近由于项目的需要,要求在服务上实现自己的邮件服务器,上网查了一下,发现一个叫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/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,不自动探测。
<postmaster>Postmaster@aorta-show.com</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多地方要做的,写这个是为了让自己记住及给一些像我这样的新手来做参考的。如果你有一个更完整的例子,希望你能共享一下,这样,我就可以少足许多弯路了。呵呵!
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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