今天,在学习SpringBoot整合Email时,遇到一个异常:java.net.UnknownHostException: smtp.qq.com ,Couldn’t connect to host, port: smtp.qq.com , 25; timeout -1;用的是QQ邮箱的POP3/SMTP服务。
分析问题:显示不能连接主机,端口:smtp.qq.com 25,代码没问题。一访问Controller就显示500错误。可能情况:
1.要在邮件设置中把POP3/SMTP服务开启。
2.ping或者telnet下smtp.qq.com,看是否接通
3.改变下端口号
4.如有安装要杀毒软件或防火墙,比如:McAFee 要在控制台->访问保护(右键)->属性->防病毒标准保护->禁止群发邮件蠕虫发送邮件->前面没有打钩
更改前配置代码
1 | spring.mail.host=smtp.qq.com |
更改后如下代码:
配置文件代码
1 | spring.mail.host=smtp.qq.com |
EmialConfig代码
1 | package net.zzqd.email; |
EmialController
1 | package net.zzqd.email; |
EmailService
1 | package net.zzqd.email; |
EmailServiceImpl
1 | package net.zzqd.email; |
附加:经过上述一切判断发现都没问题,有将端口号改为465,发现出现501错误码,了解以后发现是从application.properties获取的账号和Message中设置的不一致造成的,在ServiceImpl中添加控制台打印发现是null,仔细观察了代码,发现注解写错位置了。如下图,完美解决。