缘起:
今天打算把写了好一段时间的项目提溜到服务器上转转,然后在启动的时候就发现了个问题,在日志跑到【JobFactory set to: org.springframework.scheduling.quartz.SpringBeanJobFactory@31e7afde】的时候他就不动了,然后等了好一会他才抛出了个异常【org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfi....】,然后前面还有个【Constructor threw exception】
大概就是构造器运行的时候出问题吧,这里直接说解决方案。
这里的问题其实是因为STMP服务器连不上导致的,因为服务端的25端口是没有被放行的。
第一种解决方案
所以第一种方案就昭然若揭,把25端口放了,但是这个放端口是需要申请的,看着比较麻烦
[TCP 25端口解封申请-阿里云帮助中心_-阿里云帮助中心 (aliyun.com)](https://help.aliyun.com/document_detail/56130.html#:~:text=出于安全考虑,阿里云默认封禁TCP 25端口出方向的访问流量,即您的阿里云云服务器无法通过TCP 25端口连接外部地址。 背景信息 TCP,25端口的出方向封禁可能影响您通过TCP 25 端口连接第三方邮件服务商的SMTP服务器对外部发送邮件。 如果您需要使用阿里云上的云服务器对外部发送邮件,建议您使用 阿里云邮 产品或者使用第三方邮件服务商提供的465端口。)
第二种解决方案
第二种方案就是使用STMP服务器的另一个端口,即465
像这样在application配置项中,把端口改成465,开启SSL即可
mail:host: smtp.163.comprotocol: smtpdefault-encoding: UTF-8username: 17377163642@163.compassword: YEUQDYMJZKHBKUHPtest-connection: trueproperties:mail:smtp:auth: truestarttls:enable: truerequired: truessl:enable: truesocketFactory:port: 465class: javax.net.ssl.SSLSocketFactoryport: 465