阿里云服务器邮件发送失败(dail tcp xxxx:25: i/o timeout)因为阿里云默认禁用 25 端口

最近在测试发送邮件的功能,发现了一个奇怪的问题,同样的 docker 镜像,在本地跑起来是可以正常发送邮件的,但是在阿里云的服务器上跑,就会报错 i/o timeout

排查了一圈发现,原来是阿里云的操作,阿里云默认禁用 25 端口以防止垃圾邮件的传播,需使用 465587 端口来进行 SMTP 连接

go 示例代码

go 复制代码
package main

import (
	"crypto/tls"
	"fmt"
	"gopkg.in/gomail.v2"
)

func main() {
	err := sendMail("user@example.com", "我是测试邮件", "送你一朵小红花")
	fmt.Println(err)
}

func sendMail(to, subject, body string) error {
	m := gomail.NewMessage()
	m.SetHeader("From", "sender@example.com")
	m.SetHeader("To", to)
	m.SetHeader("Subject", subject)
	m.SetBody("text/html", body)

	// 这里端口换成 465
	d := gomail.NewDialer("smtp.example.com", 25, "user", "123456")
	// d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
	return d.DialAndSend(m)
}

感兴趣的可以看我写的另一篇有关电子邮件的文章 电子邮件发送接收原理(附 go 语言实现发送邮件)

相关推荐
平凡而伟大(心之所向)2 小时前
云架构设计与实践:从基础到未来趋势
人工智能·阿里云·系统架构·安全架构
eddy-原8 小时前
阿里云核心服务解析与应用实践
linux·运维·阿里云·云计算
tnan252210 小时前
基于阿里云效实现cicd记录
阿里云·ci/cd·docker·容器·自动化
Heavydrink13 小时前
阿里云龙蜥8系统安装Docker详细教程
阿里云·docker·云计算
星释17 小时前
阿里云Windows数据2T以上磁盘扩容方案
阿里云·云计算
云资源服务商17 小时前
深度解析阿里云通用算力型U1与U2i实例性能差异:架构、算力、场景选型全对比
服务器·阿里云·云计算
xuehuayu.cn1 天前
基于HTML5、阿里云播放SDK、腾讯云播放SDK开发的M3U8在线播放器
阿里云·腾讯云·html5
Serverless社区1 天前
为什么别人用 DevPod 秒启 DeepSeek-OCR,你还在装环境?
阿里云·云原生·serverless
行思理2 天前
本地用docker开发的php 程序如何部署到阿里云的ecs上
阿里云·docker·容器
TMT星球3 天前
IDC报告:阿里云市场份额升至26.8%,连续5季度上涨
阿里云·云计算