1.用配置smtp主机地址的方式(在congfluence的web界面上设置)
这里我用的是阿里的邮箱(smtp服务器地址为smtp.mxhichina.com),可是25、465端口都配置了,去测试却还是收不到邮件
没有一点反应。(查看日志如下:)
在网上找了大半天资料,最后官方文档里有说明提示(可以尝试用587端口,去连接测试)
官方链接: https://confluence.atlassian.com/confkb/mail-server-connection-failed-with-smtp-802593325.html
官方说明:
SMTP Port Optional. The port to connect to on the SMTP host.
FishEye needs to use port 25 or port 587, because unlike JIRA its initial connection doesn't use SSL. Port 25 will be used if no port is specified.
我自己尝试改用587端口,TLS选项开启不开启的模式下,都是不成功的。(我看网上有同学用腾讯的企业邮箱,设置587后成功收到邮件,我用阿里的还是不行,并且我也不想去换邮箱,怪麻烦的)
首先,我的服务是部署在aws上的,想着看看连阿里的邮件服务器到底通不通,是否是端口没开。
telnet smtp.mxhichina.com 25 //不通
telnet smtp.mxhichina.com 587 //不通
telnet smtp.mxhichina.com 465 //通
最后发现,confluence在设置邮件服务时有两种方式,尝试下第二种。
2.第二种方式解决了这个问题(通过 javax.mail.Session所用的JNDI地址去配置)
(1)停止confluence服务
(2)将文件mail-1.4.5.jar从<confluence-install>/confluence/WEB-INF/lib文件中移动(不是复制)到<confluence-install>/lib文件下
<confluence-install>这里是安装路径我这里是(/home1/atlassian/confluence)
(3)在<confluence-install>/conf/下的server.xml添加如下代码(注意添加在</Context>标签之前)注意, 放在第一个context的标签块里,不然会报找不到 mail。
<Resource name="mail/mohangSMTPServer"
auth="Container"
type="javax.mail.Session"
mail.smtp.host="smtp.mxhichina.com"
mail.smtp.port="465"
mail.smtp.auth="true"
mail.smtp.user="自己的阿里邮箱"
password="邮箱密码" //腾讯的邮箱的话,应该是授权码
mail.smtp.starttls.enable="true"
mail.transport.protocol="smtps" //协议类型
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>
(4)启动confluence,继续配置【JNDI地址】
JNDI 地址是:java:comp/env/mail/mohangSMTPServer 注意:jndi地址必须和server.xml名称保持一致
回到confluence的web邮件服务器设置页面,上面的还和之前一样设置。
下面的就设置为第二种方式即可:
3.最后在这里再次测试邮件