国内云服务器默认封禁25端口,宝塔邮局需改用465端口并配置SSL、防火墙、域名DNS验证(SPF/DKIM/DMARC),且邮箱用户名须与MX记录域名严格一致。

宝塔邮局管理器发信失败,基本就是25端口被云厂商封了
国内主流云厂商(阿里云、腾讯云、华为云)新购服务器默认封禁25端口出向,且不开放解封入口——这不是配置问题,是基础设施限制。宝塔邮局管理器默认监听25端口发信,一旦被拦,服务日志里常出现Connection refused或长时间无响应,telnet your_ip 25直接超时。
验证方式很简单:
telnet smtp.qq.com 25如果连不上,再试
telnet smtp.qq.com 465。前者失败后者成功,基本锁定25端口被屏蔽。
别在“申请解封”上耗时间:阿里云仅对企业认证用户开放25端口解封,且需提交工单说明用途;轻量应用服务器、学生机、个人版实例一律不处理。
改用465端口发信,Postfix必须重配+开防火墙+装证书
宝塔邮局管理器图形界面里没有“一键切465”的开关,得手动改Postfix配置。关键点不是换端口号,而是整个通信链路要适配SSL加密:
-
inet_interfaces必须设为all或具体IP,不能是loopback-only -
smtp_tls_security_level设为encrypt,强制走TLS -
relayhost要填第三方中继地址(如[smtp.mailgun.org]:587),或留空但确保本地Postfix能直连外部SMTPS服务 - 防火墙必须放行
465(TCP),命令示例:firewall-cmd --permanent --add-port=465/tcp - 宝塔面板 → 网站 → SSL → 为邮件域名申请并部署有效证书,路径要填进Postfix的
smtpd_tls_cert_file和smtpd_tls_key_file
改完配置后,必须执行systemctl restart postfix,再用ss -tlnp | grep :465确认进程已监听。
SPF/DKIM/DMARC记录没配,99%的邮件进不了收件箱
即使465端口通了、证书也装了,Gmail/QQ邮箱仍可能把你的信扔进垃圾箱,甚至不提示——根本原因是发信身份不可信。免费二级域名(如xxx.123.com)、未配PTR反向解析、动态IP,都会触发拒收策略。
必须在域名DNS里加三条记录:
-
SPF:值为v=spf1 a mx include:smtp.exmail.qq.com ~all(以QQ企业邮箱为例) -
DKIM:宝塔邮局插件自带生成按钮,或从QQ邮箱后台导出公钥填入TXT记录,名称类似default._domainkey.yourdomain.com -
DMARC:值为v=DMARC1; p=quarantine; rua=mailto:postmaster@yourdomain.com
DNS修改后不用等48小时,用dig MX yourdomain.com +short和nslookup -type=txt default._domainkey.yourdomain.com 114.114.114.114立刻验证是否生效。
测试发信失败时,先看/var/log/mail.log而不是点“测试按钮”
宝塔面板右上角的“测试邮件”按钮经常卡住或静默失败,它调用的是Python脚本/www/server/panel/class/mail_main.py,底层依赖系统sendmail或Postfix,但错误不透出到前端。
真正有效的排查路径是:
- 手动执行测试命令:
/www/server/panel/pyenv/bin/python /www/server/panel/class/mail_main.py send_test - 实时盯住日志:
tail -f /var/log/mail.log - 常见报错含义:
no route to host→ 防火墙或安全组没开;certificate verify failed→ SSL证书路径错或过期;550 User not found→ 邮箱账号不存在或MX记录指向错误
最易忽略的一点:宝塔邮局管理器创建的邮箱用户,必须和DNS里的MX记录域名完全一致(比如MX指向mail.yourdomain.com,那邮箱就得是user@mail.yourdomain.com,不能只填user@yourdomain.com)。这个细节错一次,前面所有配置都白搭。


















