1、进入后台-》邮件服务器
服务器主机名配置有两种方式
输入SMTP主机地址或者javax.mail.Session所用的JNDI地址
第一种方式比较简单,能发就是能发,不能发的话就只能通过JNDI的方式了,不赘述第一种了,只介绍JNDI的方式。至于为啥选择JNDI的方式,因为直接配置host的方式不能用啊(废话了_-_)
2、在JNDI的位置输入jndi名
输入你自己的 java:comp/env/mail/ExampleSMTPServer
mail/ExampleSMTPServer是你在第三步server.xml配置的Resource名
3、配置server.xml
位置在安装目录{$CONFLUENCE_INSTALL}/conf/server.xml
<!--邮箱配置-start-->
<!--name要配置在后台邮件服务器JNDI的位置-->
<Resource name="mail/ExampleSMTPServer"
auth="Container"
type="javax.mail.Session"
<!--邮箱主机地址1-->
mail.smtp.host="xxx.xx.xx.xx.xx"
<!--邮箱端口-->
mail.smtp.port="465"
mail.smtp.auth="true"
<!--发件箱地址-->
mail.smtp.user="test@example.cn"
<!--发件箱密码-->
password="passwd"
mail.smtp.starttls.enable="true"
mail.smtp.starttls.required="true"
mail.smtp.ssl.enable="true"
<!--邮箱主机地址1,和上面一致-->
mail.smtp.ssl.trust="xxx.xx.xx.xx.xx"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>
<!--邮箱配置-end-->
mail.smtp.starttls.enable="true"
mail.smtp.starttls.required="true"
mail.smtp.ssl.trust="xxx.xx.xx.xx.xxx
这几个配置,看邮箱服务器,不需要可不配置
4、移动mail相关的jar包
我是在报了[atlassian.confluence.jmx.JmxSMTPMailServer] getSession Mail server at location [java:comp/env/mail/UnicomSMTPServer] is not of required type javax.mail.Session,这种错误后,参考了这个jira的邮箱服务器配置问题 Configuring an SMTP mail server to send notifications | Administering Jira applications Data Center and Server 9.7 | Atlassian Documentation
看关键的地方
说的是把javax.mail-x.y.z.jar
, javax.mail-api-x.y.z.jar
, activation-x.y.z.jar
(x.y.z表示版本
),从 ${congfluence_install_dir}/confluence/WEB-INF/lib/
下移到(注意:是移动mv不是copy) ${congfluence_install_dir}/lib目录下,在${congfluence_install_dir}/confluence/WEB-INF/lib/
目录下不要保留这几个jar包。然后重启confluence,测试发送邮件
测试发送成功。
完活,收工?!
我也以为这样就可以了,谁知道测试邮件发送成功了,可是在实际使用的时候却没收到邮件。然后,看日志吧
/doforgotuserpassword.action,我是想通过发送重置密码测试,谁知出现了这个问题。
仔细看是因为加载类不同的原因,猜测是因为哪个jar的版本不同导致的,可是到底是因为哪个jar包呢,太难找了,查的资料都只是说了移动javax.mail-x.y.z.jar
, javax.mail-api-x.y.z.jar
, activation-x.y.z.jar这三个jar,最后废了半天劲,通过多次测试,把
${congfluence_install_dir}/confluence/WEB-INF/lib/
下的javax.activation-api-1.2.0.jar和bcmail-jdk15on-1.64.jar也移到了
${congfluence_install_dir}/lib,再次重启测试,终于可以收到重置密码的邮件了
所以最后我的配置
confluence/conf/server.xml
邮件服务器后台
移动到confluence/lib的jar包