fengzf的gravatar头像
fengzf 2022-06-14 15:57:07
Could not connect to SMTP host: smtp.gmail.com

1、背景:

SpringMVC简单发送邮件,代码部署在海外

以下为代码简单配置

Could not connect to SMTP host: smtp.gmail.com

 

Could not connect to SMTP host: smtp.gmail.com

在国内用国内的邮箱测试发邮件是没问题的,但是换成海外的邮箱发件,抛异常报错

Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1

 

Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
at javax.mail.Service.connect(Service.java:291)
at javax.mail.Service.connect(Service.java:172)

 

开始怀疑是邮件服务器连接不同了,但是telnet   smtp.gmail.com. port  465 是能连得通的

 

2、原因:

465端口(SMTPS):465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件发送者抗抵赖功能。防止发送者发送之后删除已发邮件,拒不承认发送过这样一份邮件。

 

3、解决:

加上如下代码即可

<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>

Could not connect to SMTP host: smtp.gmail.com

 

 


打赏

已有1人打赏

最代码官方的gravatar头像
最近浏览
ab1068 6月30日
暂无贡献等级
JustCoolDogs  LV1 6月24日
最代码官方  LV163 6月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友