如何从phpmailer获取错误列表?

时间:2019-02-27 09:29:07

标签: php smtp phpmailer

我正在通过PHPMailer发送电子邮件,并且发现了一种特殊情况,即该电子邮件地址是属于发送网关的不存在的电子邮件地址 [ e.g - gateway email: 1234@1234.com and the email address 0000@1234.com],phpmailer返回以下错误:“收件人地址被拒绝,虚拟邮箱表中的用户未知”。

如果状态代码可能在那里存在(我想知道是硬跳还是软跳),那也很棒,而且,我想知道还会发生哪种其他特定情况。

1 个答案:

答案 0 :(得分:0)

RFC5321和相关的RFC涵盖了SMTP错误,您可以在其中看到最重要的错误代码。当您在PHPMailer中收到SMTP错误时,SMTP错误代码将放入受保护的SMTP实例的$error属性中,但是您可以使用getError()来获取它。从普通的PHP代码可以通过以下方式完成:

$error = $mail->getSMTPInstance()->getError();

结果是这样的数组:

[
    'error' => $message,
    'detail' => $detail,
    'smtp_code' => $smtp_code,
    'smtp_code_ex' => $smtp_code_ex,
]

您最感兴趣的是smtp_code元素。

请注意,这仅在您通过SMTP发送时适用;如果您通过mail()发送,则不会填充。