调试SMTP电子邮件失败 - GSuite

时间:2017-06-07 10:16:00

标签: php email smtp phpmailer gsuite

我正在开发一个电子商务网站,当他们使用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;
  }

那么调试这个的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

错误消息非常明确。您调用第三方Web服务,该服务返回一个错误代码,表示您呼叫的服务器处于容量状态,请稍后再试。这是一项免费服务,可以让您升级到付费计划吗?通常你会看到他的那种东西。