3

我将 wordpress 与 WP Mail SMTP 插件一起使用,以便通过经过身份验证的 SMTP 发送电子邮件。我现在已经在 SMTP 服务器上打开了它,以便我们可以在那里中继并且测试邮件工作 - 报告真实并且邮件到达。但是,如果我尝试使用插件中的 wp_mail 发送它不起作用 - wp_mail 返回 false 并且电子邮件没有到达。我在 wp_mail 函数中放置了一些调试代码,包括我在$e->getMessage()wp_mail 的最后(当它尝试发送实际邮件时)的 try/catch 中从 catch 块中调试出来。这说

SMTP 错误:无法验证。

但是,如上所述,测试邮件有效!

然后我开始调试 phpmailer 对象并比较我的 wp_mail 调用和测试邮件的调用。我注意到exceptions受保护的成员是我的,而不是测试邮件。在我的通话中进入 wp_mail 时,似乎全局 phpmailer 不存在,因此它是在 wp_mail 中创建 $phpmailer = new PHPMailer( true ) 的真的,但是邮件到了!

如果我检查异常,但如果我不检查异常,邮件仍然会到达,我怎么会收到身份验证错误?有任何想法吗?

我在我的开发环境中运行 wordpress 3.7.1 和 WP Mail SMTP 0.9.3。我在带有插件版本 0.9.1 的 wordpress 3.6.1 中遇到了相同的症状(测试邮件有效,但我的 wp_mail 调用无效)

4

1 回答 1

1

即使身份验证失败,测试电子邮件功能似乎也会继续尝试发送电子邮件。即使没有进行身份验证,邮件服务器似乎也允许我进行中继,因此测试电子邮件可以通过。如果身份验证失败,从我的插件对 wp_mail 的实际调用会失败。如果我打开 SMTP 身份验证,那么我的邮件也可以正常工作。

我认为这是测试电子邮件功能中的一个错误,但我会与插件作者一起讨论。

于 2013-11-13T14:39:13.200 回答