前言:我只实现了利用james来发送邮件,至于接收邮件没有测试过。
网上的资料有很多,感兴趣的话也可以搜索一下。我也是根据网上的资料,进行汇总并尝试,思考后写的文章,里面引用了网上的部分资料。无废话,开始干~
前置工作:
- 由于Apache James邮件服务需要用到1024以下的端口,因此请用root用户登录进行部署
- 需要先安装JDK1.5或以上版本,部署前请确保您的JDK环境变量如JAVA_HOME等已经设置好
- James 启动时,其SMTP 服务默认在 25 端口启动,POP3 服务默认在 110 端口启动, NNTP 服务默认在 119 端口启动, 请确保这些端口未被占用。 Linux下查过这些端口是否被占用的命令是:lsof -i:端口号,例如:
表示25端口被 sendmail (linux下默认的邮件服务)占用
关闭SendMail服务: 一般RedHat的系统安装时都会默认安装了sendmail邮件服务,因此在部署ApacheJames时,需要把 sendmail关闭。可以通过以下方法来关闭sendmail,以防止系统重启时又自动启动sendmail服务。 a) 用chkconfig --list sendmail命令查看sendmail的情况 ![](http://www.myexception.cn/img/2013/11/02/140517881.png)
b) 通过chkconfig sendmail off命令来关闭sendmail的启动 chkconfig sendmail off
c) 这时再用chkconfig --list sendmail命令可以查看到sendmail的所有启动级别都已经关闭了 ![](http://www.myexception.cn/img/2013/11/02/140517882.png)
正式部署:
解压Apache James包(apache-james-2.3.2.tar.gz):
tar zxvf apache-james-2.3.2.tar.gz
解压后,会多了一个目录james-2.3.2
进入james-2.3.2/bin目录,运行run.sh,生成james的配置文件config.xml
sh run.sh
run.sh: line 37: /usr/local/james-2.3.2/bin/phoenix.sh: 权限不够
权限不够(估计是解压后run.sh文件没有赋予执行权限),可以执行以下命令:
chmod +x run.sh
然后再次运行run.sh命令:
sh run.sh
Using PHOENIX_HOME: /usr/local/james-2.3.2
Using PHOENIX_TMPDIR: /usr/local/james-2.3.2/temp
Using JAVA_HOME: /usr/java/jdk1.5.0
Running Phoenix:
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 started plain:119
FetchMail Disabled
说明James启动成功。
按Ctrl + C退出James,编辑config.xml文件。
生成的config.xml放置在../james-2.3.2/apps/james/SAR- INF目录下
修改的方法有很多种。
主要地方有:
Postmaster@自己邮件服务器的域名.com 这里的“自己邮件服务器的域名.com”就是别人收信的时候看到的发件人是谁。 同时将/etc/hosts里面添加 127.0.0.1 自己[邮件服务器](http://cpro.baidu.com/cpro/ui/uijs.php?rs=1&u=http%3A%2F%2Fwww%2Emyexception%2Ecn%2Fapache%2F1468802%2Ehtml&p=baidu&c=news&n=10&t=tpclicked3_hc&q=wangyuead_cpr&k=%D3%CA%BC%FE%B7%FE%CE%F1%C6%F7&k0=%D3%CA%BC%FE%B7%FE%CE%F1%C6%F7&k1=%D3%CA%BC%FE%B7%FE%CE%F1&k2=%CA%FD%BE%DD%BF%E2&k3=james&k4=java&k5=server&sid=8713e2f6e9ed16e4&ch=0&tu=u1828791&jk=ffb1bdeaa3309920&cf=29&fv=15&stid=9&urlid=0&luki=1&seller_id=1&di=128)的[域名](http://cpro.baidu.com/cpro/ui/uijs.php?rs=1&u=http%3A%2F%2Fwww%2Emyexception%2Ecn%2Fapache%2F1468802%2Ehtml&p=baidu&c=news&n=10&t=tpclicked3_hc&q=wangyuead_cpr&k=%D3%F2%C3%FB&k0=%D3%F2%C3%FB&k1=%D3%CA%BC%FE&k2=phoenix&k3=linux&k4=%D3%CA%BC%FE%B7%FE%CE%F1%C6%F7&k5=%D3%CA%BC%FE%B7%FE%CE%F1&sid=8713e2f6e9ed16e4&ch=0&tu=u1828791&jk=ffb1bdeaa3309920&cf=29&fv=15&stid=9&urlid=0&luki=7&seller_id=1&di=128).com
将[xml] view plaincopyprint?
<servernames autodetect="true" autodetectIP="true">
改为
<servernames autodetect="false" autodetectIP="false">
-
[xml] view plaincopyprint?
<<span style="width: auto; height: auto;" id="19_nwp"><a target=_blank style="text-decoration: none;" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?rs=1&u=http%3A%2F%2Fwww%2Emyexception%2Ecn%2Fapache%2F1468802%2Ehtml&p=baidu&c=news&n=10&t=tpclicked3\_hc&q=wangyuead\_cpr&k=server&k0=server&k1=%D3%F2%C3%FB&k2=%D3%CA%BC%FE&k3=phoenix&k4=linux&k5=%D3%CA%BC%FE%B7%FE%CE%F1%C6%F7&sid=8713e2f6e9ed16e4&ch=0&tu=u1828791&jk=ffb1bdeaa3309920&cf=29&fv=15&stid=9&urlid=0&luki=6&seller_id=1&di=128" id="19_nwl"><span style="font-size:14px;color:#0000ff;width:auto;height:auto;float:none;">server</span></a></span>name>自己<span style="width: auto; height: auto;" id="20_nwp"><a target=_blank style="text-decoration: none;" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?rs=1&u=http%3A%2F%2Fwww%2Emyexception%2Ecn%2Fapache%2F1468802%2Ehtml&p=baidu&c=news&n=10&t=tpclicked3\_hc&q=wangyuead\_cpr&k=%D3%CA%BC%FE%B7%FE%CE%F1%C6%F7&k0=%D3%CA%BC%FE%B7%FE%CE%F1%C6%F7&k1=%D3%CA%BC%FE%B7%FE%CE%F1&k2=%CA%FD%BE%DD%BF%E2&k3=james&k4=java&k5=server&sid=8713e2f6e9ed16e4&ch=0&tu=u1828791&jk=ffb1bdeaa3309920&cf=29&fv=15&stid=9&urlid=0&luki=1&seller_id=1&di=128" id="20_nwl"><span style="font-size:14px;color:#0000ff;width:auto;height:auto;float:none;">邮件服务器</span></a></span>的<span style="width: auto; height: auto;" id="21_nwp"><a target=_blank style="text-decoration: none;" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?rs=1&u=http%3A%2F%2Fwww%2Emyexception%2Ecn%2Fapache%2F1468802%2Ehtml&p=baidu&c=news&n=10&t=tpclicked3\_hc&q=wangyuead\_cpr&k=%D3%F2%C3%FB&k0=%D3%F2%C3%FB&k1=%D3%CA%BC%FE&k2=phoenix&k3=linux&k4=%D3%CA%BC%FE%B7%FE%CE%F1%C6%F7&k5=%D3%CA%BC%FE%B7%FE%CE%F1&sid=8713e2f6e9ed16e4&ch=0&tu=u1828791&jk=ffb1bdeaa3309920&cf=29&fv=15&stid=9&urlid=0&luki=7&seller_id=1&di=128" id="21_nwl"><span style="font-size:14px;color:#0000ff;width:auto;height:auto;float:none;">域名</span></a></span>.com</servername>
4、 修改inbox的存储位置。
将
<inboxRepository>
<repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
</inboxRepository>
注释掉或修改为下面的,表示利用数据库来存储,而不是文件的形式
[xml] view plaincopyprint?
<inboxRepository>
<repository destinationURL="db://maildb/inbox/" type="MAIL"/>
</inboxRepository>
注:如果修改成了dbfile协议,代表邮件头在数据库,邮件体在文件
5、 注释掉服务网段,如果需要校验,则开启。
[xml] view plaincopyprint?
<!-- <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet> -->
6、 修改outgoing的存储为数据库
将
<mailet match="All" class="RemoteDelivery">
<outgoing> file://var/mail/outgoing/ </outgoing>
改成
<outgoing> db://maildb/spool/outgoing </outgoing>
7、 同理,找到spool的配置,将文件的改为数据库存储。
8、修改dnsserver,由于邮件服务器发送邮件的时候肯定是往外网发,所以需要dns来做发送时,投递给对面接受服务器域名时的解析工作。
同时修改james的配置。
同时修改这2个参数为false
9、修改校验
10、修改接受时的网段地址(自己根据需求也可以设置不同的值)
12、 新建jdbc数据源
13、 复制mysql-connection.jar 到 ../james-2.3.2/lib 下,这样就能加载上了。
14、 重启james服务,基本就OK了。
15、 添加邮件服务器的账号。默认的登陆id 为root 密码也为 root
可以输入help来获取帮助。
附上james的下载(我的云盘):http://pan.baidu.com/s/1h57fQ
本文链接: https://erik.xyz/2014/12/07/zhuan-apache-james-da-jian-you-jian-fu-wu-qi/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!