【问题标题】:How to Check for PEAR Mail SMTP Authentication Failure如何检查 PEAR 邮件 SMTP 验证失败
【发布时间】:2013-07-17 18:12:13
【问题描述】:

我正在构建一个 SMTP 电子邮件框架,该框架将具有用于发送电子邮件的默认用户名和密码(使用 PHP 的 PEAR Mail),但我希望具有提供备用电子邮件帐户凭据以发送电子邮件的功能电子邮件。

因此,为了进行调试,我需要能够确定无法发送电子邮件的原因。有谁知道很容易确定失败是由于身份验证问题引起的?

我使用无效密码运行了一个测试用例。显然是为了检查错误:

if (PEAR::isError($mail)) {
    echo("<p>" . $mail->getMessage() . "</p>");
} else {
    echo("<p>Message successfully sent!</p>");
}

错误消息是:

authentication failure [SMTP: Invalid response code received from server (code: 535, response: 5.7.3 Authentication unsuccessful)]

所以,我可以简单地解析这个字符串并确定它是“身份验证失败”,但前提是我确信这将始终是身份验证失败时的响应。我对每个人的问题是,如果身份验证失败,我是否可以期望始终返回此消息,或者是否有人知道在尝试发送电子邮件之前或之后验证登录凭据的更简单的解决方案?

【问题讨论】:

  • if ($mail-&gt;getCode() == 535) { failed! }
  • 此代码列表与 Marc 的评论非常吻合:iana.org/assignments/smtp-enhanced-status-codes/…
  • 很好,有没有什么地方我可以查看所有响应代码...在网上查了一下,但我找不到完整的解决方案。
  • @Darkwater23 谢谢...在看到你之前发表了我的评论。

标签: php smtp pear


【解决方案1】:

PEAR_Error 对象具有(其中包括)分别获取错误代码和消息的方法:

在邮件包的情况下,错误代码是一个 SMTP 错误代码,记录在 RFC 5321 中。

【讨论】:

    猜你喜欢
    • 2013-11-30
    • 2014-11-01
    • 2012-09-21
    • 2014-01-07
    • 2012-01-09
    • 2016-07-30
    • 2014-07-21
    • 2013-06-05
    • 1970-01-01
    相关资源
    最近更新 更多