一、背景

       编写了一个邮件定时发送的功能,在本机运行正常。部署到阿里云服务器(香港),发现无法正常发送邮件。

二、报错情况

1.报错提示无法连接smtp.qq.com 456

org.springframework.mail.MailSendException: Mail server connection failed; nested exception is com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.qq.com, 456; timeout -1;
  nested exception is:
	java.net.ConnectException: Connection timed out: connect. Failed messages: 

2.初步分析ip是通的

ping smtp.qq.com

正在 Ping mp.mail.qq.com [43.129.255.54] 具有 32 字节的数据:
来自 43.129.255.54 的回复: 字节=32 时间=1ms TTL=55

3.多半是端口不通

因为是windows系统,使用powershell,运行 Test-NetConnection smtp.qq.com -Port 456

结果是确实不通。

三、解决方法

1.前面分析思路的来源

问的豆包,当然个人也应该有这个排查思路的素质。ip通的,端口访问不了,多半是防火墙。

2.使用阿里云安全组设置允许访问smtp.qq.com的端口

更多推荐