1

我正在构建一个 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)]

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

4

1 回答 1

1

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

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

于 2013-07-25T05:45:07.563 回答