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

article/2025/8/27 13:12:16

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

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

在这里插入图片描述

go 示例代码

package mainimport ("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)// 这里端口换成 465d := gomail.NewDialer("smtp.example.com", 25, "user", "123456")// d.TLSConfig = &tls.Config{InsecureSkipVerify: true}return d.DialAndSend(m)
}

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


http://www.hkcw.cn/article/JeFfuudxJx.shtml

相关文章

什么叫做回表?

指的是在Mysql中使用非聚簇索引,也就是使用二级索引进行作为条件进行查询时,查询了除索引之外的数据,需要根据获得的主键去聚簇索引,查询其他的所需的数据。 有表格(id,name,age),进行查询select * from w…

pikachu靶场通关笔记08 XSS关卡04-DOM型XSS

目录 一、XSS原理 二、DOM型XSS 三、源码分析 1、进入靶场 2、XSS探测 3、源码分析 四、渗透实战 1、Payload1 2、Payload2 3、Payload3 本系列为通过《pikachu靶场通关笔记》的XSS关卡(共10关)渗透集合,通过对XSS关卡源码的代码审计找到XSS风…

Python打卡第39天

浙大疏锦行 作业: """ DAY 39 图像数据与显存 本节主要介绍深度学习中的图像数据处理和显存管理。 """import torch import torch.nn as nn import torch.nn.functional as F import torchvision import torchvision.transforms as…

SQLite 中文写入失败问题总结

SQLite 中文写入失败问题总结与解决方案 在 Windows 下使用 C 操作 SQLite 数据库时,中文字段经常出现 写入成功但内容显示为 BLOB 或 乱码 的问题。根本原因在于 SQLite 要求字符串以 UTF-8 编码 存储,而默认的 std::string 中文通常是 GB2312/ANSI 编…

63、【OS】【Nuttx】任务休眠与唤醒:sleep

背景 之前的 blog 分析了 Nuttx 编码规范 62、【OS】【Nuttx】编码规范解读(十) 接下来继续分析下 Nuttx OS 的一个核心功能,任务休眠与唤醒 任务休眠 先来看任务休眠,关键函数 sleep,sleep函数是 C 标准库中的一个…

PostgreSQL学会如何建表

开始使用PostgreSQL之前, 上一节我们说了怎样安装它。 PostgreSQL可能已经安装到你的电脑上了,安装后postgre服务默认在电脑开机时运行启动。 一.了解PostgreSQL的运行 PostgreSQL使用一种客户端/服务器(C/S)模型。 和其他典型的客户端/服务…

Wirtinger Flow算法的matlab实现和python实现

文章目录 1. 数学模型2. Wirtinger Flow 算法2.1. 光谱初始化方法2.2. Wirtinger梯度下降 3. 算法实现3.1. Matlab实现3.2. Python实现 参考文献 1. 数学模型 观测数学模型可由下面公式给出 y ∣ A x ∣ 2 y |Ax|^2 y∣Ax∣2 其中 x ∈ C n x\in\mathbb C^{n} x∈Cn&#x…

QT+opecv如何更改图片的拍摄路径

如何更改相机拍摄图片的路径 前言:基础夯实:效果展示:实现功能:遇到问题:未解决: 核心代码: 前言: 最近在项目开发中遇到需要让用户更改相机拍摄路径的问题,用户可自己选…

常见的国密加密算法(M1/M2/M3/M4)

国密加密算法 SM2(非对称加密算法) 类型:是非对称加密算法,基于椭圆曲线密码实现。特点:包括有数字签名算法、密钥交换协议,公钥加密算法等部分,其中256位的安全强度比RSA 2048位高,但运算速度更快。使用…

Ubuntu系统下Docker部署Dify保姆级教程:实现内网穿透远程访问

文章目录 前言1. Docker部署Dify2. 本地访问Dify3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 各位开发者朋友,今天我们将开启一项创新实践——基于Ubuntu系统搭建Dify大语言模型开发平台,并通过Docker容器…

MySQL高可用革命:Orchestrator实现零干预的故障转移与智能拓扑管理

MySQL高可用革命:Orchestrator实现零干预的故障转移与智能拓扑管理 凌晨3点,某电商平台的数据库主节点突然宕机,而系统却在30秒内自动切换至备用节点,数百万用户的购物车数据完好无损——这一切的背后,正是Orchestrato…

Github 2025-05-29 Go开源项目日报Top9

根据Github Trendings的统计,今日(2025-05-29统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目9Assembly项目1Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42421 个Fork数量:27…

技能造血破冰中年人就业困局:粤荣职业培训学校与康安堂共筑康养人才直通车

2025年5月28日,广州市白云区粤荣职业培训学校与康安堂(广州)健康产业有限责任公司在广州市白云区正式签署就业合作协议。在当前社会,中年人就业难问题日益凸显。他们面临着家庭和社会的双重压力,却因年龄、技能等因素在就业市场上处于劣势。粤…

notion搭建个人知识管理库

nullhttps://www.bilibili.com/video/BV1Ur4y1L77m/?spm_id_from333.337.search-card.all.click&vd_source5434ba52b45e69a8650762bf71d67608 一、视频教程:如何搭建个人管理数据库,包括目标管理、知识管理、任务管理等功能,以及如何创建表格和设置…

EC800X QuecDuino开发板介绍

支持的模组列表 EG800KEC800MEC800GEC800E 功能列表 基本概述 EC800X QuecDuino EVB 搭载移远 EC800 系列模组。支持模组型号为: EC800M 系列、EC800K 系列、EG800K 系列、EC800E 系列等。 渲染图 开发板的主要组件、接口布局见下图 资料下载 EC800X-QuecDui…

CC攻击的种类与特点解析

CC攻击(Challenge Collapsar)是一种针对Web应用层的分布式拒绝服务(DDoS)攻击,通过模拟合法用户请求耗尽服务器资源,导致服务不可用。以下是其核心种类及特点的详细分析: 一、CC攻击的种类 代理…

Vite打包优化实践:从分包到性能提升

前言: ​​​​​​​ 随着前端应用功能的增加,项目的打包体积也会不断膨胀,影响加载速度和用户体验。本文介绍了几种常见的打包优化策略,通过Vite和相关插件,帮助减少项目体积、提升性能,优化加载速度。 rollup-plugi…

深度解析 9 大 UI 设计风格

1. 扁平化设计 (Flat Design) 特点: 简洁明了: 移除了阴影、渐变、纹理等三维效果,强调二维平面元素。色彩鲜明: 常用大胆、明亮的色彩。极简主义: 专注于功能性,减少不必要的装饰。排版清晰: 强调大字体和清晰的文本。易于响应: 扁平化设计在不同屏幕尺…

信号与系统速成-1.绪论

b站浙大教授虽然讲的比较细,但是太慢了,不适合速成 祖师爷奥本海姆的MIT课程好像和我们教材的版本不太匹配,但是讲的很不错 慕课上也有很多资源,比如信号与系统 - 网易云课堂 同站博主篱笆外的xixi的文章也挺不错 最终我还是选…

WPF prism

Prism Prism.Dryloc 包 安装 Nuget 包 - Prism.DryIoc 1. 修改 App.xaml 修改 App.xaml 文件&#xff0c;添加 prism 命名空间, 继承由 Application → PrismApplication&#xff0c;删除默认启动 url, StartupUri“MainWindow.xaml” <dryioc:PrismApplicationx:Class…