解决了一个wordpress邮件发送失败的问题

黯黄老师 管理员 2018-6-16 2994

今天在调试Wordpress的时候,插件easydigitaldownloads的一个用户验证的邮件,怎么都发送不出去。但是其他如订单邮件、找回密码邮件都可以正常发送。


看了一下EDD的官方帮助文档:https://docs.easydigitaldownloads.com/article/189-email-receipts-are-not-being-sent。


然后按这个文档的说法一步一步去检验。首先根据文档推荐,装了WP Mail Logging插件,这个可以查看到wordpress发送的邮件记录。


因为我的wordpress邮件发送,是通过阿里云的邮件推送服务发送的。不是服务器自带的,那么问题就比较好找了。实现第三方邮件发送的插件是Easy WP SMTP。这个插件很好用,大家可以了解下。Wordpress > Easy WP SMTP > 阿里云 > QQ邮箱一个环节一个环节的去找。首先在WP Mail Logging里面,是可以看到邮件记录的。说明wordpress没偷懒,有把邮件发出去。然后我登录阿里云邮件推送后台,查看了一下发送记录。居然没有。。。原来是阿里云在偷懒。。。


但是原因还不知道,研究了下Easy WP SMTP插件也没问题。又回到WP Mail Logging,发现发送失败的邮件后面错误栏有个感叹号。但是没有说是什么错误啊,鼠标移动上去看看,“SMTP Error: data not accepted.”。终于找到问题了。百度了下,说是可能是内容被过滤了。



那就改下邮件内容试试吧。找到wp-content/plugins/easy-digital-downloads/includes/user-functions.php。这个文件里定义了这封邮件的内容。因为是英文,我就把他翻译成中文。关闭缓存插件,然后在前台提交下。QQ邮箱瞬间收到。完美解决!


一开始我怀疑是QQ邮箱不收,但是自从我用阿里云的这个邮件推送服务后,QQ邮箱的达到率还是很高的,没有拒收的情况。


写这篇文章记录下解决过程。不过最重要的是解决问题思路要清晰,不然只会头大。查看错误记录,是解决程序问题最基本的方法。



登录后回复
最新回复 (0)
返回