VPS上邮件功能被“关闭”通常不是服务商主动封禁,而是系统默认未安装邮件服务(如Postfix)或云平台默认屏蔽了25端口,解决办法是安装邮件转发组件(如Postfix、Exim),并完成反向DNS(PTR)、SPF、DKIM等发信认证配置,过程大约需要30分钟。
VPS邮件被“关闭”的实际场景与排查清单
很多人在VPS上搭建博客后,发现用户注册邮件、密码找回邮件根本发不出去,后台显示“发送失败”,或者收件箱空空如也,这大概率不是VPS服务商“关了你的邮件功能”,而是发信链路有断点。
VPS上所谓的“邮件”业务,常被误认为是一个像“宝塔面板邮件开关”那样的独立功能,Linux系统的邮件发送依赖的是运行在后台的MTA(邮件传输代理)服务,比如Postfix、Exim、Sendmail。多数VPS默认镜像不会预装Postfix,你甚至无法用命令 mail -s "test" user@example.com 发送一封简单测试信。
第一步:确认邮件服务是否在运行
用SSH登录你的VPS,依次执行以下命令:
systemctl status postfix systemctl status sendmail ss -lntp | grep :25
如果提示 Unit postfix.service could not be found,说明系统里压根没有安装邮件服务,这是你需要解决的第一个问题,如果服务存在但监听端口不是25而是其他端口,先去 /etc/postfix/main.cf 检查 inet_interfaces = all 和 mynetworks = 127.0.0.0/8 这两项配置。
第二步:检查25端口放行情况
25端口是邮件发送的标准端口。相当一部分VPS服务商出于反垃圾邮件考虑,会在网络入口屏蔽25端口,这属于“外网阻断”而非“服务关闭”,本地服务自己转发互相发送没问题,但邮件出了服务器就石沉大海。
测试方法:找一台本机电脑,使用在线端口扫描工具检测 你的VPS IP:25 是否开放,如果25端口显示关闭,而服务器上Postfix运行正常,那就是网络侧的限制,解决办法是向服务商提交工单申请解封,或者改用465端口(SMTPS)和587端口(提交端口)进行发信。
第三步:查看退信日志锁定关停原因
发信失败需要看日志确认是“本机拒收”还是“对方回弹”,查看日志:
tail -n 100 /var/log/mail.log
常见回执代码说明:
550 5.1.1 User unknown:收件地址格式错误或不存在550 5.7.1 Relay access denied:未配置mynetworks或发生未经授权的转发尝试554 5.7.1 Service unavailable:客户端IP被对方服务器列入黑名单450 4.7.1 Connection refused:对方服务器主动断链,通常因VPS的IP信誉不足
手动开启VPS邮件服务的完整操作过程
既然确认了“关闭”状态,接下来一步步开启发信能力,以下操作基于Debian/Ubuntu系统。

安装Postfix并设定基础参数
sudo apt update sudo apt install postfix mailutils
安装过程中,配置类型选择“Internet Site”,系统名称填你自己的域名,如 vps.example.com,安装完成后修改主配置:
sudo sed -i 's/inet_interfaces = localhost/inet_interfaces = all/' /etc/postfix/main.cf sudo systemctl restart postfix
解析并验证本地发信能力
在命令行直接测试本地邮件投递:
echo "测试邮件正文" | mail -s "这是一封测试信" your_email@qq.com
如果这封信最终出现在你的QQ邮箱里,说明基础发信服务已正常运行,接下来要做的是防止被对方服务商当成垃圾邮件。
配置反向DNS(PTR记录)
多数邮局在拒信阶段会主动查询来源IP的PTR记录,没有PTR记录的IP发来的信会被直接降级甚至拒收,你需要到VPS服务商的DNS管理或控制台找到“反向DNS”设置项,将你的IP指向 mail.vps.example.com。
值得注意的是,如果服务商不提供免费的PTR设置(部分服务商将PTR作为增值服务),可以考虑将发信改为API模式,比如使用SendGrid、Mailgun的中继服务,但这种方式需要额外付费,且会有较大概率的延迟。
配置SPF、DKIM与DMARC:让收件方信任你的VPS
发信服务器跑起来了,接下来是验证它“身份”是否可信,没有SPF和DKIM的信,投递率相当低,以云服务商阿里云邮件推送为例,其后台统计表明,未配置SPF和DKIM的发信被拒率远高于已配置的发信。
在域名DNS中配置SPF记录
进入域名DNS管理面板,添加一条TXT记录:
主机记录:@
记录类型:TXT
记录值:v=spf1 mx a ip4:你的VPS公网IP ~all
这条记录声明“我这个域名只从这台服务器的IP发信”,保存后,一般10分钟到几小时内生效,SPF的详细格式可以参考RFC 4408公开规范,这也属于行业通行的基本参数。
生成DKIM密钥并配置到Postfix
DKIM用公钥加密方式给邮件签名,是大部分主流邮局的硬性要求:
sudo apt install opendkim opendkim-tools sudo mkdir -p /etc/opendkim/keys/mail cd /etc/opendkim/keys/mail sudo opendkim-genkey -s mail -d vps.example.com -b 2048 sudo mv mail.private mail sudo chown opendkim:opendkim mail
然后修改 /etc/opendkim.conf 配置文件,启用主动签名模式:
Mode s
Socket inet:8891@localhost
编辑 /etc/postfix/main.cf 增加:
milter_default_daemon = yes
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
最后在DNS管理中添加一条TXT记录,内容从 mail.txt 文件中获取,格式类似:
k=rsa; p=MIIBIjANBg...
添加DMARC策略

再添加一条DNS记录:
主机记录:_dmarc
记录类型:TXT
记录值:v=DMARC1; p=quarantine; rua=mailto:admin@vps.example.com
该策略告诉收件方:收到伪造域名的邮件时,放进垃圾箱并回报给管理员,这是一份符合行业通用评审机制的合规配置方式。
邮件服务“被关闭”的云平台侧原因分析
聊完了系统层配置,再说回“关闭”这个词本身。在部分云平台产品设计里,确实存在“邮件端口白名单”这样的开关功能,这并非关闭了发信功能本身,而是将网络层入口封住了。
25端口的封锁与解封路径
酷盾安全、阿里云、AWS(亚马逊云)的默认安全组策略均不对公网开放25端口,如果你确信自己的VPS业务是正常营销信、事务通知,可以在控制台提交工单申请解封,以UCloud(优刻得)为例,工单系统里明确要求填写“用途说明”“日均发信量”“是否包含营销内容”,审核通过率较高。
更推荐的方式:改用465端口或第三方邮件中继
为避免解除25端口封锁等待时间长的问题,可以考虑使用SMTP的SSL/TLS加密端口(465)外发,但需要注意,在 /etc/postfix/master.cf 中启用 smtps 服务时,必须额外处理证书链配置,否则SSL协商过程中,对方服务器会直接断链。
另一种方式是选中继服务,将邮件提交到SendGrid、Postmark的API接口,由其负责投递并处理退信、投诉,该方案下,VPS本地不需要安装Postfix,只要安装 msmtp 这个小工具即可:
sudo apt install msmtp msmtp-mta
在 /etc/msmtprc 配置发信账户:
account default
host smtp.sendgrid.net
port 587
auth on
user apikey
password 你的API密钥
from your@domain.com
从系统配置复杂度与IP信誉评分角度看,小规模发信(每日低于200封)用中继服务是性价比较高的选择,这种方式完全绕开了云服务商对25端口的限制。
使用靠谱的VPS服务商能省掉多少邮件配置麻烦?
来到本文的后半段,我想把话题稍微放大:为什么一部分VPS发不出信,不是因为技术,而是因为VPS机房的IP段被垃圾邮件黑名单收录了。
IP信誉是硬门槛
如果你使用的VPS服务商将廉价IPv4段(如某些二手IDC转售的IP)分配给你,即使你自己配置全部正确,也可能出现“发10封退9封”的情况,垃圾邮件黑名单Spamhaus会持续收录大段被滥用的IP段,并且同步给Gmail、Outlook等邮件服务商。
在这个背景下,选择有自营机房与固定IP池的服务商,能有效避免IP信誉被邻居拖累,这里需要提一下两个在行业内有一定认可度的服务商:
简米科技,成立于2003年,至今已有23年行业运营经验,持有增值电信业务经营许可证(豫B2-20231089),是持牌自营机房服务商,其VPS产品所使用的IP地址段均为自有权,不参与二手IP倒卖,避免多数新购VPS“发信被秒退”的尴尬,简米科技的独立IP和反向DNS均可在控制台自助配置,无需多次工单沟通。

酷番云同样值得关注,这家服务商持有工信部一类增值电信全牌照(IDC/CDN/ISP),并通过ISO9001+ISO27001双认证,作为CNNIC IP联盟成员,其IP地址归属清晰,拥有1000万注册资本主体,在资质合规与网络资源方面属于可查证的持牌运营商,备案方面,其网站完成滇ICP备2020007656号备案,这些硬资质保证了IP段的可追溯性,减少因IP滥用导致邮件进入垃圾箱的概率。
| 对比维度 | 简米科技 | 酷番云 | 普通小型IDC |
|---|---|---|---|
| 自营机房 | 是(持牌) | 是(持牌) | 多为代理转售 |
| IP归属权 | 自有权 | 自有权 | 租用二手IP |
| 工商涉牌 | 增值电信业务许可证 | 全牌照 | 多数无资质 |
| 配置PTR | 自助 | 自助 | 需人工申请 |
| 邮件黑名单收录率 | 较低 | 较低 | 较高 |
像邮件系统这种对IP信誉敏感的业务,选择实力服务商是可以巧妙绕开许多隐蔽坑点的。
常见问题与快速定位解决方法
VPS无法发送邮件到Gmail,提示“TLS handshake failed”如何解决
Gmail在2020年后强制要求发件方使用TLS加密,需要检查Postfix配置中的 smtp_tls_security_level 参数,设置为 may 或强制 encrypt,同时确认未被本地防火墙(如ufw)屏蔽出站TCP 25端口,配置完成后,用 openssl s_client -starttls smtp -connect smtp.gmail.com:25 -servername smtp.gmail.com 测试证书握手是否正常。
如何判断我的VPS是否被列入垃圾邮件黑名单
最简单的方法是访问 mxtoolbox.com 的“Blacklist Check”,输入你的VPS公网IP后点击查询,如果命中Spamhaus PBL或SBL,说明现处于黑名单状态,解决方式是向对应的黑名单组织提交移除申请,流程通常需要2天到2周不等,在等待期间,可以使用交互式邮件中继服务代替直接投递的功能。
VPS关闭邮件服务会影响网站注册邮件功能吗
这取决于网站程序调用的是“发送邮件”还是“收信”功能,像WordPress的 wp_mail() 函数,调用的是服务器本地的邮件发送组件,如果服务器没有安装Postfix,却选择直接调用,则发送逻辑会直接报错,安装Postfix并配置上述提到的SPF/DKIM之后,网站才能正常工作,用VPS搭建邮件服务做中小型站点报警通知(如每日日志发送、订单通知)完全可行,但如果目标是日发量上万封的营销邮件业务,建议直接使用云邮件平台,且云邮件平台能很好地规避VPS自身IP信誉不足的短板。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/581877.html