postfix启动失败大概率是25端口被云厂商封禁;需用telnet验证,按阿里云/腾讯云/华为云规则申请解封或改用465/587端口;mx记录须正确配置为域名并解析至服务器ip。

宝塔面板里装Postfix却启动失败,大概率是25端口被云厂商封了
国内主流云厂商(阿里云、腾讯云、华为云)默认封禁出向25端口,不是你配置错了,是根本连不出去。Postfix启动日志里反复出现 connect to smtp.gmail.com[142.250.191.109]:25: Connection refused 或直接卡在 Starting postfix 就不动,基本可以锁定这个原因。
验证方式就一条命令:telnet smtp.qq.com 25。如果卡住或返回 Connection refused,说明出向25已断。此时别折腾 main.cf,先处理网络层。
- 阿里云:仅企业认证用户可提交工单申请解封,需说明“用于自建邮件服务器”,个人账号基本没戏
- 腾讯云:安全组放行25端口只是第一步,仍需提交工单申请“解除25端口限制”
- 华为云:除安全组外,必须单独申请“邮件端口白名单”,审批要1–3个工作日
- 实在解不开?改用465/587端口走第三方SMTP中继(如Mailgun),并在Postfix里配
relayhost = [smtp.mailgun.org]:587和smtp_tls_security_level = encrypt
Postfix装好了但收不到外部邮件,MX记录八成没配对
宝塔邮局插件或手动装的Postfix,本地发信测试成功(echo "test" | mail -s "test" admin@localhost),但别人发不到你的 user@yourdomain.com,问题几乎全出在DNS上。Postfix本身不托管DNS,MX必须在你域名的DNS服务商处(Cloudflare、阿里云DNS等)手动添加。
检查方法:dig MX yourdomain.com +short。正确输出应为类似 10 mail.yourdomain.com.(注意末尾的点)。如果返回空、IP地址、或指向错误域名,就无法投递。
- MX记录禁止直接写IP,RFC标准强制要求必须是域名
-
mail.yourdomain.com必须有对应的A记录,且解析到你服务器的真实公网IP(Cloudflare免费版会代理隐藏IP,务必把该记录设为“DNS only”,灰色云图标) - 优先级数字(如10、20)只影响多MX时的备用顺序,不是必须从10开始;单条MX填10即可
- DNS生效有缓存,国内多数5–15分钟,用
nslookup -type=mx yourdomain.com 114.114.114.114指定公共DNS验证最新状态
Postfix配置文件改完不生效,postfix check 和 systemctl restart postfix 缺一不可
很多人改完 /etc/postfix/main.cf 就以为完事了,结果服务没重启、语法没校验,配置实际没加载。Postfix对配置敏感,少个空格、错个等号都会导致队列停滞。
关键操作只有两步,顺序不能反:
- 先运行
sudo postfix check—— 没输出才是正常;如果有报错(比如bad number或missing),说明配置语法有硬伤,必须修复后再继续 - 再运行
sudo systemctl restart postfix—— 仅 reload 不够,restart 才能彻底重载所有模块(包括qmgr队列管理器) - 验证是否监听25端口:
sudo netstat -tlnp | grep :25,看到postfix/master进程才真正生效 - 别漏掉
myhostname和mydestination:前者必须是带域名的完整主机名(如mail.yourdomain.com),后者要包含该主机名,否则Postfix认为这封邮件不该由它处理
用宝塔邮局插件还是手装Postfix?看你要不要收外网邮件
如果只是内部通知(如网站表单提交、监控告警推送到自己邮箱),宝塔“邮件推送”插件 + 第三方SMTP(QQ邮箱/企业邮箱)最省事,465端口+授权码,5分钟搞定,完全绕过25端口和MX难题。
但如果你需要别人能给你发信(比如 contact@yourdomain.com),就必须走Postfix + Dovecot + 正确MX路线。宝塔邮局管理器虽然带UI,但它底层仍是Postfix,该配的DNS、该开的端口、该调的TLS一个都不能少——UI只是帮你生成配置,不是帮你绕过互联网基础设施规则。
最容易被忽略的一点:Postfix默认只监听本地(inet_interfaces = loopback-only),想收外网邮件必须改成 inet_interfaces = all,且确保防火墙(宝塔安全组或系统iptables)放行25端口入站(仅限已解封环境)。











