修正WP mail to commenter插件发件人Email地址及名称
用wordpress邮件评论回复通知插件mail to commenter的或许都知道,这个插件无法显示发件人地址信息,但本文主要不是要解决问题,而是将解决问题的思路写出来,当然,最后问题成功解决。如果你先麻烦,直接看解决方案即可,定位到这里。
本人的博客刚上线没多久,很多功能还有待折腾和完善。一直苦于给评论者做出回复后如何通知对方,总不能挨个手动给人发邮件吧?那岂不累死?于是想到实现wordpress评论回复邮件通知功能。最开始的思路是NO插件。但是上网搜集了很多资料,未果:没有具体详实做法供参考。凭我这水平,不懂PHP,搞不定。
于是乎,改变思路,迫不得已,安装插件。我一般不喜欢安装插件,像右侧的侧边栏显示最新评论、wordpress文章标题优化,都是非插件实现的。
接下来就是寻找合适的轻量级的插件了,评论最多和使用最多的是偶爱偶家的Wordpress Thread Comment,其实这个插件我刚建本站的时候安装过,因为和我模板自带的嵌套回复功能重复,出现了两个reply,当时没匆忙细想直接卸载了。就在昨天看到了解决方案:关掉wordpress自带的评论嵌套功能。但是我没有去尝试,因为感觉这个插件太臃肿,功能很完善但我并不需要。
接下来又搜到了我爱水煮鱼的Comment Reply Notification,几番尝试,未果,不知是我太笨还是这插件根本不合格。
最后,找到了一个据说口碑也不错的:mail to commenter,也就是我现在在用的这个。安装上,后台启用,发送测试邮件,接收正常,很是欣慰。
但是有个细节问题,想必很多人都注意到了:不显示发件人及其Email邮件地址。

去看了博主的插件主页,貌似有人问这个问题,但博主未予回复。
于是今天决定着手自己搞定,思路是这样子的:
1、邮件可以正常发送,“@+评论者+空格+回复内容”功能可以正常使用,评论人可以收到邮件,证明基本功能没有问题;
2、不显示发件人地址,证明邮件发件人信息配置不准确或是没有配置。
打开插件,看了两眼,看个半懂,于是先上网搜PHP Mail函数的用法。习惯性的google一下“PHP mail函数”,信息不全,改英文“PHP Mail fuction”,详细用法就在这里。多余的不说了,很明显,PHP Mail函数的基本样式是
mail(to,subject,message,headers,parameters)
其中发送邮件中额外报头的写法是:
<?php $to = "somebody@example.com"; $subject = "My subject"; $txt = "Hello world!"; $headers = "From: webmaster@example.com" . "\r\n" . "CC: somebodyelse@example.com"; mail($to,$subject,$txt,$headers); ?>
到这里,解决方案就很明显了。
$headers = "From: webmaster@example.com" . "\r\n" .是发件人名称及Email地址。
于是再次打开mail to commenter插件,查找类似代码,在mailtocommenter_functions.php文件中有这么一段:
function mailtocommenter_send_email($to,$subject,$message){ $blogname = get_option('blogname'); $charset = get_option('blog_charset'); $headers = "From: $blogname \n" ; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: text/html;charset=\"$charset\"\n"; $to = strtolower($to); return @wp_mail($to, $subject, $message, $headers); }
到这里就明白了,作者没有设置发件人Email。但奇怪的是设置了发件人名称为博客名称(blogname)为啥也没显示呢。
下面修改就简单了:直接将$headers = "From: $blogname \n" ; 替换即可,我将它替换为了
$headers = 'From: 豬頭六 <no-reply@ideapress.org>' . "\r\n\\";
最后,测试了一下,一切OK,搞定。

写了很多,其实本篇文章主要不是要解决问题,而是将解决问题的思路写出来,大家一起交流。有时候思路和判断比解决问题本身更重要。
WordPress Thread Comment造成两个“回复”的问题的确很烦恼,当初我博客刚开始的时候,我折腾了半天,后来迫不得已,把自带的嵌套去掉才OK
@集思 恩,呵呵:)WP Thread Comment的确很强悍。
用谷歌搜索猪头六,居然第一页有我的博客出现
@集思 是啊,我也看了,有我给你留的言,呵呵:)前半页都是我。
这种邮件会不会被认作是垃圾邮件啊?
@iHenry 到目前為止還沒有發現,哈哈,你可以測試下。看回覆您留言的通知郵件在垃圾箱嗎?
哈哈,对不起,还真在垃圾邮件里~ 囧rz。Windows Live Hotmail
@iHenry 哦,^_^ HOTMAIL好用吗?我一直用Gmail。
我就是用偶爱偶家的那个,感觉蛮不错
@Firm 那個用的人最多了,的確很強悍。
写的很好,用上了
@蜗牛 不客气。很高兴能对你有所帮助。
好心人
我使用Comment Reply Notification也不能发邮件,用你的方法试试,谢谢喽~
测试下你的mail to commenter插件
@Candy 有效吧?
刚收到评论回复邮件,呵呵。
可是,我在自己的博客上用这个插件没任何反映,邮件没有发出去。
貌似看了半天 还是没有太大的思路。。