评论回复邮件通知功能的好处自不必说。但是针对不支持mail函数的主机来说还是比较麻烦。在网上搜教程的时候,几乎全部都在说需要修改include中class-smtp.php的代码,然而在我打开class-smtp.php的时候,发现代码位置和结构都已经和教程中所展示的不一样了。仔细研究了一下才发现,原来最新版的WordPress已经已经对fsockopen做了兼容。也就是说,在新版本的WordPress已经不需要再修改class-smtp.php中的任何代码了。配置方法非常简单,下面以目前的最新版本4.4.2为例。

第一步:开启fsockopen函数

登录服务商主机后台,找到PHP环境相关设置界面,将fsockopen函数设置为开启。没有找到的请自行咨询客服。

第二步:安装smtp插件

我使用的是WP SMTP这款插件,配置比较简单。下面是插件配置项说明:

  • 发件人地址 -> 你用来发送邮件的邮箱地址
  • 发件人昵称 -> 用于显示发件人
  • SMTP服务器地址 -> 可以到邮箱的客户端设置中找到(例如126邮箱:smtp.126.com)
  • SMTP加密方式 -> 根据邮箱自行设定
  • SMTP端口 -> 同上,一般ssl端口号为465;普通端口25
  • SMTP认证 -> YES
  • 认证用户名 -> 邮箱地址
  • 认证密码 -> 邮箱登录密码

设置完毕,可以填写一个邮箱地址进行测试,如果测试成功,那么继续下一步。

第三步:添加邮件内容

直接上代码,粘贴至主题文件夹function.php内。html标签内的样式代码可以根据自己的需要进行修改。

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 = 'beyond0420@126.com' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); //e-mail 发出点, no-reply 可改为可用的 e-mail.
$to = trim(get_comment($parent_id)->comment_author_email);
$subject = '[' . get_option("blogname") . '] 您的留言有了新回复';
$message = '
<div style="width: 60%;margin: 0 auto">
<div style="font-size: 28px;line-height: 28px;text-align: center;"><p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p></div>
<div style="border-bottom: 1px solid #eee;padding-top: 10px;">
<p style="color: #999;">您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:</p>
<p style="font-size: 18px;">' . trim(get_comment($parent_id)->comment_content) . '</p>
</div>
<div style="border-bottom: 1px solid #eee;padding-top: 10px;">
<p style="color: #999;">' . trim($comment->comment_author) . ' 给您的回复:</p>
<p style="font-size: 18px;">' . trim($comment->comment_content) . '</p>
<p style="text-align: center;font-size: 12px;padding-bottom: 20px;"><a style="border: 1px solid #3297fb;color: #3297fb;padding: 7px 14px;text-decoration: none;-moz-border-radius: 4px;-webkit-border-radius: 4px;border-radius:4px;" href="' . esc_attr(get_comment_link($parent_id, array('type' => 'comment'))) . '">点击查看</a></p>
</div> <div style="font-size: 12px;color: #999;text-align: center;">
<p>此邮件由系统自动发送,请勿回复</p>
<p>© <a href="http://www.newpm.net" style="color: #999;text-decoration: none;">' . get_option('blogname') . '</a></p>
</div>
</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');

原文来自:http://www.newpm.net/life/1912

本文地址:https://www.linuxprobe.com/wordpress-email-pinglun.html编辑:倪家兴,审核员:逄增宝