Comment-Reply-Notification 等评论插件无法发送邮件解决方法

建成博客后,很多时候都希望评论者在被回复时能及时得到通知,但是很多主题不支持此功能,改程序又觉得麻烦,还得进行记录(预防主题或 wordpress 更新导致文件被还原)。遂转向了使用插件实现该功能。

不得不说, Comment-Reply-Notification 是一个简单好用的评论回复邮件通知插件,其具体功能如下:

Comment Reply Notification

很多人(包括我)在安装完 Comment-Reply-Notification 后,在测试时却无法收到相关提醒邮件,几经排查,最后确定了几个因素,遂总结如下:

1、主机对 mail() 函数不支持

这在国内基本上算通病,要不联系idc进行协商解决(估计没戏),要不就使用 WP-Mail-SMTP 之类的插件解决(推荐)。

2、安装插件后未开启替换默认发信模式功能

很多人把 WP-Mail-SMTP 插件装了,也测试通过了,但是忽略了一个选项,就是 通过SMTP插件发送所有邮件 ,如图:

通过SMTP插件发送所有邮件

选择这个选项后, wordpress 所有的邮件,都会通过 WP-Mail-SMTP 发送,而不会去调用 mail() 函数。

3、WP-MAIL-SMTP 的 PHP 函数限制

这个也是最近才分析出来的,原来作者写这个邮件功能的时候就用IF语句做了判断,默认只能管理员能收到SMTP邮件,难怪其他的邮箱收不到了。找到 /plugins/wp-mail-smtp/wp_mail_smtp.php ,删除如下代码:

// If the from email is not the default, return it unchanged
    if ( $orig != $default_from ) {
        return $orig;
    }

更新后刷新再测试,评论回复邮件通知功能已实现。