使用社会化评论插件的朋友会发现,使用之后,访客的回访率非常高,文章评论互动也很活跃,这是因为社会化评论插件的覆盖率比较广,如果使用社会化评论插件评论过的用户,只要访问了安装同样插件的网站,就会收到醒目的通知,吸引用户回访互动,这对增加网站用户黏度有着不可小觑的作用。
喜欢原生 WordPress 评论模板的用户可能会头疼了,原生 WordPress 一般也有自动发送通知邮件的功能,只要有人回复评论,就会自动发送。不过,可能正是因为 WordPress 这样肆无忌惮的发送邮件,绝大多数电子邮箱服务商已经完全过滤了此类邮件,更有大部分主机服务商为了避免自己的主机 IP 被其他人标记为 spam ,直接禁止了 mail()
函数的使用。因此 WordPress 原生评论模板的通知功能几乎无作用了。
如果实在不希望换用插件评论的话,可以试一下下面的办法,可以解决收不到邮件的问题。
我们可以换用比较可靠的 STMP 方式来发送邮件。
获取STMP邮箱
首先我们要有一个专门用来发送邮件的邮箱,所有电子邮箱都可以,不过建议邮箱地址跟自己的网站名称统一起来。所有的邮箱都有自己的 STMP 服务器,只是大部分邮箱默认没有开启,所以想要使用 STMP 发信还需要手动设置开启。一般来讲,需要登录邮箱,找到设置页面,然后手动开启,具体可以查看邮件服务商的帮助页面,开启 STMP 功能之后,还要知道 STMP 的信息,具体也可以在帮助页上找到。需要的内容有:服务器名和端口名,端口名有 SSL 的和非 SSL 的,一般用非 SSL 的端口号,不要搞错了。
安装 WordPress STMP 插件
很多人建议安装 Configure SMTP 插件,我个人感觉这个插件有些复杂,我建议安装 WP-Mail-SMTP 这款插件,插件的原理是自动替换 WordPress 内核中的 wp_mail()
函数。直接在wp后台搜索安装,安装完成之后,在“设置”→“Email”设置参数。
参数设置的注意事项我写在图片里了,STMP服务器信息需要按照你选用的邮件服务器如实填写。不要使用 SSL 加密。
保存之后,可以在设置页下方测试一下邮件发送,如果收到了测试邮件的话,就证明可以使用了。
部署WordPress代码
这是一个非常经典的自动回复评论的代码,很多主题都在用,不过我对其进行稍加改造了一下,增加了评论的链接,可以直接点击访问评论。
- /* comment_mail_notify v1.0 by willin kan. */
- function comment_mail_notify($comment_id) {
- $comment = get_comment($comment_id);
- $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
- $spam_confirmed = $comment->comment_approved;
- if (($parent_id != '') && ($spam_confirmed != 'spam')) {
- $wp_email = 'xxxxx@163.com'; //e-mail 发出点, no-reply 可改为可用的 e-mail.
- $to = trim(get_comment($parent_id)->comment_author_email);
- $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
- $message = '
- <div style="background-color:#eef2fa; border:1px solid #d8e3e8; color:#111; padding:0 15px; -moz-border-radius:5px; -webkit-border-radius:5px; -khtml-border-radius:5px;">
- <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
- <p><strong>您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:</strong><br />'
- . trim(get_comment($parent_id)->comment_content) . '</p>
- <p><strong>' . trim($comment->comment_author) . ' 给您的回复:</strong><br />'
- . trim($comment->comment_content) . '<br /></p>
- <p>您可以点击 <a href="' . htmlspecialchars(get_comment_link($parent_id)) . '" target="_blank">查看回复完整內容</a></p>
- <p>欢迎再度光临 <a href="http://www.yelook.com" target="_blank">' . get_option('blogname') . '</a></p>
- <p>(此邮件由系统自动发送,请勿回复.)</p>
- </div>';
- $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
- $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
- wp_mail( $to, $subject, $message, $headers );
- }
- }
- add_action('comment_post', 'comment_mail_notify');
使用的时候注意把代码中我的网站链接和邮箱换成你自己的。把这段代码放置在 functions.php
文件中。这样一来,所有的工作就完成了,然后就是测试发信了。
测试效果是收到的邮件是自己设置163邮箱发来的,虽然有的邮件被识别为垃圾邮件放在垃圾箱,但是起码要比直接拒收要好得多。
截图中的邮件是我在本机搭建的 WordPress 环境中测试发送的,所以我用的发信邮箱是另外的测试邮箱。
感谢你的赏识与认可
支付宝
微信支付
使用手机访问这篇文章
本文许可协议 © CC BY-NC-SA 4.0 转载请注明来源
- 上一篇: 建站日志-对本站主题大规模BUG修复
- 下一篇: 极易移植的万能WordPress全站ajax代码
第三方评论插件总不太让人放心,不存在本地的话可能会因为第三方的原因而丢失。
博主你好,应该是 SMTP 哦~
哈哈,我的锅我的锅
非常感谢博主的分享,终于成功给自己的站配上了评论回复功能!!!
用了博主的代码,成功实现评论留言回复,特来感谢!
还好你有这个邮件回复插件,时隔两年觉得你的主题很好,去邮件找到了你,哈哈哈哈哈哈哈
感谢,很有用,不过代码第七行这里是做什么的呢?
$wp_email = ‘xxxxx@163.com’; //e-mail 发出点, no-reply 可改为可用的 e-mail.
我发现我不小心把xxxxx@163.com写错了,但是并不影响发件
不影响发邮件,但是影响邮件展示的内容。
好像有些懂了,$wp_email这里如果填 no-reply ,那么发出去邮件就是no-reply (xxxxx@163.com)这样吗?
不过我用的WP SMTP,必须强制填昵称,可能就覆盖这里了