菜单

(转)apache james 搭建邮件服务器

2014-12-07 - 优秀原创

 

前言:我只实现了利用james来发送邮件,至于接收邮件没有测试过。

网上的资料有很多,感兴趣的话也可以搜索一下。我也是根据网上的资料,进行汇总并尝试,思考后写的文章,里面引用了网上的部分资料。无废话,开始干~

前置工作:

  1. 由于Apache James邮件服务需要用到1024以下的端口,因此请用root用户登录进行部署
  2. 需要先安装JDK1.5或以上版本,部署前请确保您的JDK环境变量如JAVA_HOME等已经设置好
  3. 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的情况

        b) 通过chkconfig sendmail off命令来关闭sendmail的启动
chkconfig sendmail off

        c) 这时再用chkconfig –list sendmail命令可以查看到sendmail的所有启动级别都已经关闭了

正式部署:

1.     解压Apache James包(apache-james-2.3.2.tar.gz):

        [root@susun177 local]# tar zxvf apache-james-2.3.2.tar.gz

        解压后,会多了一个目录james-2.3.2

2.     进入james-2.3.2/bin目录,运行run.sh,生成james的配置文件config.xml

        [root@susun177 bin]# sh run.sh

       run.sh: line 37: /usr/local/james-2.3.2/bin/phoenix.sh: 权限不够

        权限不够(估计是解压后run.sh文件没有赋予执行权限),可以执行以下命令:

        [root@susun177 bin]# chmod +x run.shphoenix.sh

        然后再次运行run.sh命令:

        [root@susun177 bin]# 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启动成功。

3.     按Ctrl + C退出James,编辑config.xml文件。

        生成的config.xml放置在../james-2.3.2/apps/james/SAR- INF目录下

        修改的方法有很多种。

主要地方有:

        1. <postmaster>Postmaster@自己邮件服务器的域名.com</postmaster>

            这里的“自己邮件服务器的域名.com”就是别人收信的时候看到的发件人是谁。

            同时将/etc/hosts里面添加 127.0.0.1 自己邮件服务器域名.com

        2. 将

  1. <servernames autodetect=“true” autodetectIP=“true”>

            改为

  1. <servernames autodetect=“false” autodetectIP=“false”>

        3. 并在<servernames>的下级标签修改自己成自己的域名

  1. <<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的存储位置。

           将

  1. <inboxRepository>
  2.      <repository destinationURL=“file://var/mail/inboxes/” type=“MAIL”/>
  3. </inboxRepository>

注释掉或修改为下面的,表示利用数据库来存储,而不是文件的形式

  1. <inboxRepository>
  2.      <repository destinationURL=“db://maildb/inbox/” type=“MAIL”/>
  3. </inboxRepository>

注:如果修改成了dbfile协议,代表邮件头在数据库,邮件体在文件

          5. 注释掉服务网段,如果需要校验,则开启。

  1. <!– <mailet match=“RemoteAddrNotInNetwork=127.0.0.1” class=“ToProcessor”>
  2.             <processor> relay-denied </processor>
  3.             <notice>550 – Requested action not taken: relaying denied</notice>
  4. </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.修改接受时的网段地址(自己根据需求也可以设置不同的值)

      11. 修改添加删除邮件账户时的存储为数据库。注释掉上面的

         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

转载请注明: 转载自—艾瑞可erik

本文链接地址: http://erik.xyz/554.html

发表评论