springboot官方github上有一个同样的issue:https://github.com/spring-projects/spring-boot/issues/2876
上面issue的解答简单来说就是在出问题之后,打开springboot调试模式观察debug输出,查看JavaMailSender这个类的注入日志。
打开debug的日志输出上面的issue提供了以下的做法,如果自己自定义日志输出工具的话可能需要额外的配置
public static void main(String[] args) {
SpringApplication.run(Application.class, "--debug");
}
通过观察日志,我发现自己的出现问题是没有配置
spring.mail.jndi-name
(官方解释是Session JNDI name. When set, takes precedence over other Session settings.)。官方给出的值为mail/Session
,官方文档
如果问题还是没有解决的话,可以先查看一下jar包是否齐全,我就遇到过maven没有下载对应jar包的情况。。。。。
也可以检查一下自己自动注入的类是否在springboot的扫描路径下面,不是的话可以试着使用
@ComponentScan
指定路径