Sendmail无法通过Postfix中继服务器发送邮件问题求助
Sendmail 转 Postfix 中继被拒问题排查
一、核对 Postfix 中继服务器核心配置(main.cf)
重点检查以下参数,确认中继规则是否放行Sendmail服务器:
relay_domains:需包含Sendmail服务器所属的域名/IP,或设置为允许中继的范围smtpd_relay_restrictions:优先级最高的中继控制规则,需包含允许Sendmail服务器IP的条目(如permit_mynetworks)mynetworks:若使用permit_mynetworks,必须将Sendmail服务器的内网/公网IP加入此列表smtpd_recipient_restrictions:确认无规则拦截Sendmail的中继请求
用户提供的main.cf配置:
# 粘贴用户提供的main.cf内容
二、分析 Postfix 拒绝日志
从Postfix日志(通常为/var/log/mail.log)中定位拒绝记录,重点提取:
- 拒绝错误码(如
554 5.7.1对应中继权限不足) - 客户端IP(确认是Sendmail服务器的IP)
- 拒绝原因描述(如
Relay access denied)
用户提供的Postfix日志:
粘贴用户提供的Postfix日志内容
三、检查 Sendmail 中继配置(sendmail.mc)
确认Sendmail已正确指向Postfix中继:
DS参数:需设置为Postfix中继服务器的域名或IP,例:DSpostfix-relay.example.com或DS192.168.1.100MASQUERADE_AS:若发件人域名不在Postfix允许中继的范围内,需调整此参数统一发件人域名- 编译生效:修改sendmail.mc后需执行
m4 sendmail.mc > sendmail.cf并重启Sendmail服务
用户提供的sendmail.mc配置:
# 粘贴用户提供的sendmail.mc内容
四、分析 Sendmail 发送日志
从Sendmail日志(如/var/log/sendmail.log或系统邮件日志)中提取失败记录,重点确认:
- 与Postfix服务器的TCP连接是否成功建立
- 收到的具体错误响应(需与Postfix日志的拒绝原因对应)
用户提供的Sendmail日志:
粘贴用户提供的Sendmail日志内容
五、额外排查项
- 网络连通性:在Sendmail服务器执行
telnet [postfix-ip] 25或nc -zv [postfix-ip] 25,测试25端口是否可达 - DNS解析:确认Sendmail服务器能正确解析Postfix中继的域名
- Postfix客户端限制:检查
smtpd_client_restrictions是否存在黑名单规则拦截Sendmail的IP - 邮件验证规则:若Postfix启用SPF/DKIM,确认Sendmail服务器IP在发件人域名的SPF记录中
内容的提问来源于stack exchange,提问作者Richard D
相关产品推荐
相关产品推荐

