阿里云/腾讯云默认禁止使用25端口发送邮件解决方法
出于安全考虑,阿里云腾讯云等服务器默认封禁TCP25端口出方向的访问流量,所以用户无法在阿里云或腾讯云上的云服务器通过TCP25端口连接外部地址。用户无法通过TCP25端口连接第三方邮件服务商的SMTP服务器对外部发送邮件。这种情况下我们通常可以使用一下两种方案来解决。
一、申请解封25端口
阿里云以及腾讯云解封教程可参考以下链接
阿里云:阿里云服务器25端口解封教程
腾讯云:腾讯云解封25端口教程
(经实测腾讯云解封很方便,阿里云可能会申请不通过)
腾讯云
阿里云
二、改用465端口
在使用465端口的SSL安全链接方案后,千万不要使用【网易品牌】的免费邮箱(如:163,126,yeah.net等。不过听说网易收费邮箱能正常收发邮件),否则你发送的邮件会当作是垃圾邮件禁止发送。
网易邮件发送问题链接:企业退信的常见问题?-163邮箱常见问题
我们这里使用的是新浪邮箱进行465端口测试。使用之前需要在邮箱设置中开发客户端授权码
示例代码:
我这里使用的hutool邮件工具类进行邮件发送。官网链接:Hutool参考文档
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.0.M4</version> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency>
mail.setting (465端口)
# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀> host = smtp.sina.com # 邮件服务器的SMTP端口,默认是25端口 port = 465 # 发件人(必须正确,否则发送失败) from = XXX@sina.com # 用户名,必须要设置成你自己使用邮箱的名称,否则会报错,权限认证失败 535错误 user = XXX@sina.com # 密码 此处注意,这里是授权码 pass = xxxxxx(对应的邮箱客户端授权码) # 使用SSL安全连接 sslEnable = true # 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字 socketFactoryClass = javax.net.ssl.SSLSocketFactory # 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true socketFactoryFallback = false # 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456 socketFactoryPort = 465 auth = true
mail.setting(25端口)
host = smtp.yeah.net
# 邮件服务器的SMTP端口,可选,默认25
port = 25
# 发件人(必须正确,否则发送失败)
from = XXXXX@yeah.net
# 用户名,默认为发件人邮箱前缀
user = XXXXXX
# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)
pass = XXXXX
使用hutool工具类发送邮件非常简单,调用如下api
MailUtil.send( "邮件地址" , "邮件主题" , "邮件内容" , 是否是html); |
测试
本博客文章均已测试验证,欢迎评论、交流、点赞。
部分文章来源于网络,如有侵权请联系删除。
转载请注明原文链接:https://www.cnblogs.com/sueyyyy/p/16326691.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?