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>
5.重新啓動James
6.telnet server-name 4555,增加用戶
7.就可以用outlook等發送郵件了。