我正在通过PHPMailer发送电子邮件,并且发现了一种特殊情况,即该电子邮件地址是属于发送网关的不存在的电子邮件地址
[ e.g - gateway email: 1234@1234.com and the email address 0000@1234.com]
,phpmailer返回以下错误:“收件人地址被拒绝,虚拟邮箱表中的用户未知”。
如果状态代码可能在那里存在(我想知道是硬跳还是软跳),那也很棒,而且,我想知道还会发生哪种其他特定情况。
答案 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()
发送,则不会填充。