由于网络安全限制的因素, 有的JIRA不能访问外网, 但邮件服务器是使用公共的邮件方服务,比如 腾讯企业邮箱、offilce365邮箱等,这个时候外发邮件就需要走代理

前提是您的代理服务器支持smtp 的代理,比如socks代理就可以,而不仅仅是http代理

使用代理又启用ssl的时经常会遇到证书信任的问题,所以需要在jira上配置忽略ssl 证书的验证,Atlassian的smtp服务也是使用的Java的smtp模块,要忽略smtp的ssl证书验证就需要设置  mail.smtp.ssl.trust=*  mail.smtp.ssl.checkserveridentity=false 这两个参数, 那么如何设置这两个参数呢,我们设置到JVM的启动环境中并没有起到左右,后来设置到JDNI的email设置中才可以

即需要使用JNDI来设置邮件,关于JDNI 的具体设置请参见  https://confluence.atlassian.com/adminjiraserver086/configuring-an-smtp-mail-server-to-send-notifications-990553684.html


编辑server.xml 文件,在 <JIRA安装目录>/conf/server.xml

<Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">
 ...
   <Resource name="mail/JiraMailServer"
     auth="Container"
     type="javax.mail.Session"
     mail.smtp.host="<代理服务器地址>"
     mail.smtp.port="<端口,如465>"
     mail.transport.protocol="smtp"
     mail.smtp.auth="true"
     mail.smtp.user="<邮件服务用户名@域名>"
     password="<密码>"
     mail.smtp.starttls.enable="true"
     mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
     mail.smtp.ssl.checkserveridentity=false
     mail.smtp.ssl.trust=*
   />
 ...
</Context>
CODE


然后在界面上配置SMTP时使用JNDI里配置的资源即可