我正在以编程方式向 1 到 50 封电子邮件之间的某个地方发送电子邮件。该程序正在创建和发送电子邮件,许多电子邮件会立即发送。然而,我经常收到一些延迟几分钟的订单,而在大批量的情况下,有些延迟了几个小时,甚至一天后才送达。 Sendmail 正在移交至 Exchange,并且此移交没有任何问题,前几分钟内传送的邮件(可能是 75%)就证明了这一点。这些异常值需要几个小时才能交付,我不知道如何解决。
其他人看到过这种问题和/或知道如何解决这个问题吗?
干杯!
答案1
Sendmail 的默认传递模式为每条收到的消息创建子进程,并“立即”传递/中继尝试。它可能(暂时)使具有多个并行的下一跃服务器“过载”,特别是在反垃圾邮件检查的情况下。
建议修复:
- 最简单:在发送超过 5 批电子邮件的消息之间引入延迟(例如 1 秒)
- 将 sendmail 配置调整到基本级别以上(特别是对于一键目的地)
- 如果您使用低级 SMTP 库并且可以发出
VERB
(详细)ESMTP 命令,那么您的发送程序可能会避免 sendmail 分叉并等待初始传送尝试结束