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

Postfix远程SMTP服务器发送批量收件人外发邮件时报错

Postfix批量收件人邮件发送问题的解决配置

1. 调整Postfix收件人数量限制

编辑Postfix主配置文件 /etc/postfix/main.cf,修改或添加以下参数:

  • smtpd_recipient_limit = 2000:单个SMTP会话允许的最大收件人数量(默认值为1000,可根据实际批量需求调大)
  • smtpd_recipient_overshoot_limit = 100:允许超出上述限制的少量额外收件人,避免因临界值触发失败

配置修改完成后,执行命令重载Postfix生效:

postfix reload

2. 同步中继服务器的对应配置

由于你的Postfix服务器需通过192.168.187.17中继发送邮件,必须确保该中继服务器的Postfix也配置了相同的收件人数量限制参数,防止中继端因收件人过多截断请求。

3. 临时关闭收件人验证排查问题

从你提供的SMTP日志可以看到最后一个to:为空,大概率是Postfix在验证收件人时遇到无效/无法解析的地址,导致会话中断。可临时关闭收件人验证进行测试:
在/etc/postfix/main.cf中调整收件人限制规则:

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

注释掉reject_unknown_recipient_domain或check_recipient_access这类收件人验证规则,之后执行postfix reload重载配置。若测试发送成功,再回头排查收件人列表中的无效地址。

4. 排查PHP CodeIgniter应用的收件人生成逻辑

本地环境能正常发送但服务器环境不行,可能是CI应用在服务器端生成了空的收件人条目(日志中最后一个空的to:已验证此可能性)。需检查应用代码:

  • 确保批量收件人列表中无空值、无效地址
  • 可将大批量收件人拆分为小批次发送(例如每50个收件人一组),降低单SMTP会话的压力

5. 通过Postfix日志定位精准错误

查看Postfix的日志文件(通常为/var/log/mail.log或/var/log/maillog),搜索对应发送时间的日志条目,里面会包含具体的错误代码(如550 5.7.1类的拒绝原因),能更精准定位问题根源。


内容的提问来源于stack exchange,提问作者Mahmud Riad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:49:54