AJAX处理程序中的wp_mail()从不返回

时间:2014-10-01 作者:Denis Wong

我们有一个jQuery调用的AJAX处理程序。ajax(),它接收存储在服务器上的文档并将其发送给用户。下面是对wp\\U mail的调用,如下所示:

$status_wpmail = wp_mail($recipient, $subject, $body, $headers, $filename);
问题是电子邮件永远不会被发送出去,wp\\u mail调用之后的任何代码都不会被解析,包括一条用于转储$status\\u wpmail值的调试语句。然而,发送回页面的jqXHR响应报告“成功”。

我在处理程序中放入调试语句,将注释转储到文本文件中,并确认语句在wp\\u邮件调用之前转储到文件中。我还为此启用了调试语句link 但我没有在wp内容中生成任何调试日志。

使用一个单独的脚本来测试带有简单消息和附件的wp\\U邮件,我确认wp\\U邮件确实可以工作。我还通过安装WP mail SMTP插件排除了mail()的罪魁祸首,因为这种行为仍然存在。

有什么想法吗?

EDIT: 我选择了一种解决方法,直接调用phpmailer并跳过wp\\u邮件。执行此操作后,消息成功发送。如果有人知道为什么wp\\U邮件会这样挂,那就太好了。

1 个回复
SO网友:yuki huang

您可以执行一些简单的调试:

试试看:wp_mail(\'youremail@com\', \'123\', \'123\'); // to see if it will go through如果#1不是,请检查SMTP设置是否正确// install a smpt plugin(wp smtp mail/easy wp smtp) 并发送测试电子邮件。如果您无法通过插件发送测试电子邮件,请检查您的电子邮件帐户是否具有从第三方发送电子邮件的正确权限(如Ahoo mail要求“生成应用程序密码”等https://wpmailsmtp.com/docs/how-to-set-up-the-other-smtp-mailer-in-wp-mail-smtp/#secure-yahoo)我的问题是wp_mail 正在阻止“;“回复”;中的选项$headers 现在,在我的AJAX请求中,只要;“回复”;选项已从中删除$headers. 不确定您是否有相同的问题。

结束

相关推荐