You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postfix能否配置为通过587/465端口向外发送邮件?

问题背景

我有多台采用Postfix+Opendkim+Dovecot架构的SMTP邮件服务器,网站通过587端口连接服务器发送邮件。查看发送日志发现,服务器向Gmail、Yahoo、iCloud等邮箱外发邮件时默认使用25端口,而部分云服务商封禁了25端口的出站流量,建议改用587或465端口发送。此前尝试取消/etc/postfix/master.cf中submission inet n - y - - smtpd的注释,但这仅用于配置服务器监听587端口接收邮件,无法改变外发端口。

日志示例:

Jul  3 11:38:03 smtp postfix/smtp[16580]: ABDB4C06AA: to=<example-mail@gmail.com>, relay=gmail-smtp-in.l.google.com[64.233.164.27]:25, delay=0.5, delays=0.07/0/0.17/0.27, dsn=2.0.0, status=sent (250 2.0.0 OK  1719995883 38308e7fff4ca-2ee51546c65si28040131fa.331 - gsmtp)
配置Postfix外发端口方法

Postfix的外发行为由smtp服务进程(而非接收用的smtpd)控制,以下两种方式可修改外发端口:

1. 全局统一修改外发端口

适合所有目标邮箱服务商均支持指定端口的场景:

  • 编辑/etc/postfix/main.cf,添加或修改以下参数:
    • 若使用587端口(STARTTLS加密):
      smtp_destination_port = 587
      smtp_tls_security_level = may
      
    • 若使用465端口(SSL加密):
      smtp_destination_port = 465
      smtp_tls_wrappermode = yes
      smtp_tls_security_level = encrypt
      
  • 保存文件后重启Postfix服务:systemctl restart postfix

2. 针对特定域名配置外发端口

适合部分服务商仅支持特定端口的场景,灵活性更高:

  1. 编辑/etc/postfix/main.cf,添加映射配置:
    transport_maps = hash:/etc/postfix/transport
    
  2. 创建并编辑/etc/postfix/transport文件,指定不同域名的外发端口(以Gmail、Yahoo、iCloud为例):
    gmail.com       smtp:[gmail-smtp-in.l.google.com]:587
    yahoo.com       smtp:[mx-biz.mail.yahoo.com]:587
    icloud.com      smtp:[mx01.mail.icloud.com]:587
    

    注意:方括号[]用于禁用MX记录查询,直接使用指定的服务器地址;若需用465端口,将:587替换为:465即可。

  3. 生成映射哈希文件:postmap /etc/postfix/transport
  4. 重启Postfix服务:systemctl restart postfix
注意事项
  • 配置前请先验证目标邮箱服务商的MX服务器是否开放指定端口,可通过telnet <mx-server> <port>测试连通性。
  • 若使用465端口,需确保Postfix已安装并启用TLS相关模块(通常默认已配置)。

内容的提问来源于stack exchange,提问作者Alex Smirnov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 15:40:13