1. 下载James 2.3.1
2、解压,并运行一次。系统会在apps目录下面生成一些初始化的配置文件。如果第一次运行有问题,用netstat检查一下是否有系统默认的端口被占用了,比如110,25等。
3、修改apps/james/SAR-INF/config.xml
①、查找替换所有的localhost为你的域名,比如baobaodi.com
【如果你没有一个域名,那么可以在system32/drivers/etc/hosts文件中添加一个伪域名用于测试,192.168.0.60 baobaodi.com】
②、查找所有autodetect属性,修改为false。
autodetectIP也设为false.
③、注释掉
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor>
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet>
④、配置DNS Server
用ipconfig /all查看你的DNS配置,添加到列表中
<dnsserver>
<servers>
<server>202.106.148.1</server>
</servers>
</dnsserver>
如果是伪域名,还需要将本机地址也列进去,最好放到第一位。<server>192.168.0.60</server>
⑤、配置smtp server,pop3 server等
查找所有myMailServer,替换为你的域名。如:
<helloName autodetect="false">myMailServer</helloName>,将myMailServer修改为你的域名。比如:baobaodi.com
如果不配置这一步,会出现504 5.5.2 <myMailServer>: Helo command rejected: need fully-qualified hostname错误。
Apache James是最好用的开源Java邮件服务器之一,在配置smtp服务过程中,有些步骤不对的话邮件就发送不出去。 0.打开james-2.2.0/apps/james/SAR-INF/config.XML文件 1.transport 注释掉
<!--mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet-->
使用smtp认证方式
2.dnsserver
输入服务器的DNS IP,例如:
<server>202.96.134.133</server>
<server>202.96.128.110</server>
<server>202.96.128.68</server>
设置autodiscover为false
如果设置为自动探测的话,在我的机器上会报错:
James.Mailet: RemoteDelivery: Temporary exception delivering mail (Mail1098776398187-0-to-somedomain.com: javax.mail.MessagingException: There are no DNS entries for the hostname somedomain.com. I cannot determine where to send this message.
at org.apache.james.transport.mailets.RemoteDelivery.deliver(RemoteDelivery.java:398)
at org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:912)
at java.lang.Thread.run(Thread.java:534)
3.修改root口令。account login="root" password="mypassword"
4.smtpserver
打开smtp认证
<authRequired>true</authRequired>