阿里云服务器邮件发送失败(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 语言实现发送邮件)

相关推荐
Serverless社区43 分钟前
【本不该故障系列】告别资源“不确定性”,SAE如何破解刚性交付核心困境
阿里云·云原生·serverless
斯文~7 小时前
「玩透ESA」站点配置阿里云ESA全站加速+自定义规则缓存
阿里云·缓存·云计算·cdn·esa
巧克力芋泥包12 小时前
前端使用阿里云图形验证码;并且与安卓进行交互
android·前端·阿里云
eyuiomvtywn21 小时前
阿里云DNS解析Vercel部署项目的域名
运维·服务器·阿里云
joinclear1 天前
【问题记录】09 对接阿里云内容安全机器审核-文本、图片审核,code报错408
安全·阿里云
程序员小白条1 天前
你面试时吹过最大的牛是什么?
java·开发语言·数据库·阿里云·面试·职场和发展·毕设
wavemap2 天前
阿里云38元一年200M轻量云服务器详细评测
服务器·阿里云·云计算·vps·评测·boboforum
懂得节能嘛.2 天前
【SDK开发实践】从Java编码到阿里云制品仓库部署
java·阿里云·maven
梦想的颜色3 天前
阿里云ecs云服务器linux安装redis
linux·服务器·阿里云