由 ChatGPT 生成的文章摘要
博主在使用WordPress博客中出现了提交评论前台超时发送失败,但后台还能正常接收评论的问题,尝试了多种方法都不能解决。最后,博主发现这是邮件发送失败导致的,安装一个WP SMTP Mail插件并配置SMTP服务即可解决该问题。
解决 WordPress 提交评论前台超时发送失败,后台正常接收评论的问题
问题引入
大概是一两个月前,我将博客接入了腾讯云 CDN,也自从那个时候开始,我的博客开始出现一些奇奇怪怪的问题,他们大多数都是因为缓存策略导致的,后来也七七八八的修复了,但唯独有一个问题一直没有得到解决:提交评论一直显示提交中,直到超时显示提交失败,但是后台可以正常收到评论。
起初我觉得是腾讯云 CDN 的缓存问题,经过查询发现提交评论是向 wp-admin/admin-ajax.php
发送了 POST 请求,遂添加了额外的缓存策略,但是并没有得到解决。
随后又从前台报错入手,发现总是得到 net::ERR_HTTP2_PROTOCOL_ERROR
,遂以为是 CDN 启用 HTTP2 协议的问题(事实这里我确实也做错了,腾讯云 CDN 不支持 HTTP2 回原,但是我 Nginx 上默认启用了 HTTP2),但是关掉后问题依旧存在,只不过错误信息变成了 CONNECTION_TIMEOUT
。
于是我以为是我的小水管网速太慢请求超时导致的,但是即使将 CDN 超时时间调到 60 秒,依旧无济于事。在经过多次查询后依然得不到一个解决方案。于是这个事情就草草收场了。
问题解决
昨天晚上心血来潮,又去查了一下这个问题,然后偶然间看到了 WordPress 回复评论卡顿、无法发送邮件问题解决办法 这篇文章,其中表示回复评论卡顿很可能是由于邮件发送不出去导致的。
这点醒了我,因为我近两个月完全没有收到 WordPress 给我发来的任何邮件(由于比较懒,我没有走 SMTP,而是让 WordPress 用默认的 25 端口直接发信的),看了一下慢日志,果然注意到 wp_mail
函数赫然在列,由此定位了问题。
解决方案也很简单,装一个 WP SMTP Mail 插件,配置一下 SMTP 服务就好了(腾讯云轻量应用服务器默认是允许所有出站流量的,并没有封端口的问题)。
至此,这个困扰了我两个月的问题得到了解决。