James邮件服务器用的好好的,突然不能发外网邮箱了,查了两天配置没搞定,只好本身来看了。数据库
首先参考网上各类配置方案(不少也很全面了),下面列举了一个。看了半天感受没什么问题,只好停下来思考了。服务器
关闭防火墙,重启服务无效。检查程序发送队列(邮件已消息队列形式存储在james-2.3.2\apps\james\var\mail\outgoing路径下),中止服务——》删除队列内容——》启动服务,发送邮件,瞬间收到邮件,搞定。网络
前面已经知道了如何安装JAMES,发送邮,收邮件,和数据库链接;但这种配置只能接收本地服务器的邮件,也就是说,我用外网邮箱,如:网易,新浪等;给我在本地这个服务器的邮箱地址发一封邮件,或者我用本地邮件服务器的这个邮箱给外网发一封邮件,它是不会成功的.由于还有一些针对外网的配置要进行; app
1)配置邮件服务器域名或IP;测试
在发送邮件时确定要有个域名,如:4545@163.com;@符号后面的就是邮件服务器的域名;固然也有这种域名:ui
1212@36.52.12.36.com;域名用IP表示;但不管怎样.这个域名都指向了一台机器,就是邮件服务器;也就是安装了JAMES的这台机器;找到<servernames />项;配置以下:spa
<servernames > <servername>whsite.ine.net.cn</servername> </servernames>
2)DNS配置;这一步相当重要,稍不注意就没法和外网联系;找到<dnsserver />项配置以下.net
<dnsserver> <servers> <server>202.103.24.68</server> <server>whsite.ine.net.cn</server> </servers> <autodiscover>false</autodiscover> <authoritative>false</authoritative> <maxcachesize>50000</maxcachesize> </dnsserver>
上面一个是本地DNS的IP,这个在本地链接里能够找到;下面一个就是邮件服务器;code
3)SMTP,POP3等..设置;server
a:找到:
<authorizedAddresses>127.0.0.0/8</authorizedAddresses>
将它改为:
<authorizedAddresses>192.168.0.0/24, 127.0.0.0/8</authorizedAddresses> 或 <authorizedAddresses>192.168.0.0/255.255.255.0, 127.0.0.0/8</authorizedAddresses>
这里设置后,只要在这个配置范围内的IP发送或接收的邮件就不会被过滤;里面的数值根据本地的网络来设置,如:
我这里的是192.168.0.0/24, 127.0.0.0/8;有可能有的是这样:192.168.1.0/24, 127.0.0.0/8
b:找到:
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"> <processor> relay-denied </processor> <notice>550 - Requested action not taken: relaying denied</notice> </mailet>
将它注释掉;
c:找到<smtpserver />;将< authRequired />打开,设为true:
<authRequired>true</authRequired>
d:找到<remotemanager />将它设置以下:
<remotemanager enabled="true"> <port>4555</port> <handler> <helloName >whsite.ine.net.cn</helloName> <administrator_accounts> <account login="root" password="oapro"/> </administrator_accounts> <connectiontimeout> 60000 </connectiontimeout> </handler> </remotemanager>
系统默认账户最好是改一下,否则别人能够远程登陆你的邮件服务器作坏事的;
e:将smtpserver,pop3server,两个项下的<helloName >myMailServer</helloName>
里的autodetect均设为false;
重启服务,测试外网邮件;
若是还不能成功发送,接收,采起以下非凡配置:
①、查找替换全部的 localhost为域名
②、查找全部autodetect属性,修改成false。autodetectIP也设为false.
③、查找全部myMailServer,替换为域名。