我正在开发一个电子商务网站,当他们使用G Suite SMTP中继服务完成订单时,会向客户发送大量电子邮件。但是大量的这些电子邮件都失败了。它似乎没有任何模式 - 有时所有电子邮件都会发送,有时只发送一两封,有时甚至没有。
我收到以下错误:421, "4.7.0", Try again later, closing connection
。
在这里查看:https://support.google.com/a/answer/3726730?hl=en并没有真正帮我调试或弄清楚为什么有些电子邮件会失败。
我正在使用phpmailer类(https://sourceforge.net/projects/phpmailer/)
第一次握手失败时似乎会出现问题:
function Hello($host="") {
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
$this->error = array(
"error" => "Called Hello() without being connected");
return false;
}
# if a hostname for the HELO was not specified determine
# a suitable one to send
if(empty($host)) {
# we need to determine some sort of appopiate default
# to send to the server
$host = "localhost";
}
// Send extended hello first (RFC 2821)
//If this fails then the second attempt will always fail
if(!$this->SendHello("EHLO", $host))
{
//when this fails it generates the try again later error
if(!$this->SendHello("HELO", $host))
return false;
}
return true;
}
那么调试这个的最佳方法是什么?
答案 0 :(得分:0)
错误消息非常明确。您调用第三方Web服务,该服务返回一个错误代码,表示您呼叫的服务器处于容量状态,请稍后再试。这是一项免费服务,可以让您升级到付费计划吗?通常你会看到他的那种东西。