WordPress 评论回复与评论审核通过时邮件回复功能

邮件回复

刚开始玩博客的时候,看着那些大佬的博客评论回复或审核通过时会有邮件提醒觉得好厉害,近期自己也打算弄一个邮箱回复功能,这里我使用的框架是WordPress的所以直接用插件就可以了,废话不多说直接上我的操作步骤吧

操作步骤

1:这里我使用的SMTP的邮件功能,需要安装一个插件:
  1.1:wordpress 搜索:Easy WP SMTP 即可下载
  1.2:这里我也提供Easy WP SMTP 压缩文件:点击下载:提取码 Wuya
2:需要在相关的邮件服务商开启SMTP功能(这里我使用的是163邮箱),建议创建一个不常用的邮箱作为回复邮箱
WordPress 评论回复与评论审核通过时邮件回复功能插图
开启SMTP功能,并新增授权密码
WordPress 评论回复与评论审核通过时邮件回复功能插图1
3:插件 Easy WP SMTP 的设置:
WordPress 评论回复与评论审核通过时邮件回复功能插图2
这样设置完之后就可以发一封测试文件试试啦
4:邮件样式
增加邮件回复时的样式,如下:
WordPress 评论回复与评论审核通过时邮件回复功能插图3
   4.1:将下面代码放入主题文件的funcitons.php中
   4.2:需要修改的地方:
发件人名称,邮箱账户,邮箱,授权密码

//评论邮件回复开始------------------------------------------------------》
function mail_smtp( $phpmailer ) {
    $phpmailer->FromName = '伍言Blog'; //发件人名称
    $phpmailer->Host = 'smtp.163.com';
    //修改为你使用的SMTP服务器,163就修改qq为163
    $phpmailer->Port = 465; //SMTP端口
    $phpmailer->Username = '***@163.com'; //邮箱账户
    $phpmailer->Password = '123456'; //STMP授权密码(新增一个授权密码)
    $phpmailer->From = '****@qq.com'; //你的邮箱
    $phpmailer->SMTPAuth = true;
    $phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25留空,465为ssl)
    $phpmailer->IsSMTP();
}add_action('phpmailer_init', 'mail_smtp');

add_action('comment_unapproved_to_approved', 'loper_comment_approved');
function loper_comment_approved($comment) {
  if(is_email($comment->comment_author_email)) {
    $post_link = get_permalink($comment->comment_post_ID);
    // 邮件标题,可自行更改
    $title = '您在 [' . get_option("blogname") . '] 的评论已通过审核';
 
    // 邮件内容
    $body = '
            <div style="background-color:#fff; border:1px solid #666666; color:#111; -moz-border-radius:8px; -webkit-border-radius:8px; -khtml-border-radius:8px;border-radius:8px; font-size:12px; width:702px; margin:0 auto; margin-top:10px;font-family:苹方,微软雅黑, Arial;">  
            <div style="background:#666666; width:100%; height:60px; color:white; -moz-border-radius:6px 6px 0 0; -webkit-border-radius:6px 6px 0 0; -khtml-border-radius:6px 6px 0 0; border-radius:6px 6px 0 0; ">
            <span style="height:60px; line-height:60px; margin-left:30px; font-size:12px;"> 您在 <a style="text-decoration:none; color:#00bbff;font-weight:600;"  href="' . get_option('home') . '">' . get_option('blogname') . '  </a> 的留言有新回复啦!</span></div>
            <div style="width:90%; margin:0 auto">
              <p><strong>' . trim(get_comment($comment)->comment_author) . '</strong>, 您好!</p>
              <p>您在 [' . get_option('blogname') . '] 的文章<strong>《' . get_the_title($comment->comment_post_ID) . '》</strong>上发表的评论已通过作者审核并显示,快来看看吧 ^_^:<br />
              <p>这是你的评论:</p>
              <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">'. trim(get_comment($comment)->comment_content) . '</p>
              <p>您也可移步到文章<a style="text-decoration:none; color:#00bbff" href="' . htmlspecialchars(get_comment_link($comment->comment_parent)) . '"> 《'. get_the_title($comment->comment_post_ID) .'》 </a>查看你的评论</p>
              <p>欢迎再次光临 <a style="text-decoration:none; color:#00bbff" href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
              <p style="border-top:1px dashed #dbd1ce;"></p>
              <p>(此邮件由系统自动发出, 请勿回复。)</p>
              <p align="right">But如果您想更深入的和博主交流的话,欢迎回复哦^-^</p>
            </div></div>';
    $body = convert_smilies($body);//转换代码为表情
    @wp_mail($comment->comment_author_email, $title, $body, "Content-Type: text/html; charset=UTF-8");        
    }
}
 function comment_mail_notify($comment_id) {
      //$admin_notify = '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 )
     $comment = get_comment($comment_id);//根据id获取这条评论相关数据
     $content=$comment->comment_content;
     //对评论内容进行匹配
     $match_count=preg_match_all('/<a href="#comment-([0-9]+)?" rel="nofollow">/si',$content,$matchs);
     if($match_count>0){//如果匹配到了
         foreach($matchs[1] as $parent_id){//对每个子匹配都进行邮件发送操作
             SimPaled_send_email($parent_id,$comment);
         }
     }elseif($comment->comment_parent!='0'){//以防万一,有人故意删了@回复,还可以通过查找父级评论id来确定邮件发送对象
         $parent_id=$comment->comment_parent;
         SimPaled_send_email($parent_id,$comment);
     }else return;
 }
add_action('comment_post', 'comment_mail_notify');
 
function SimPaled_send_email($parent_id,$comment){//发送邮件的函数
    $admin_email = get_bloginfo ('admin_email');//管理员邮箱
    $parent_comment=get_comment($parent_id);//获取被回复人(或叫父级评论)相关信息
    $author_email=$comment->comment_author_email;//评论人邮箱
    $to = trim($parent_comment->comment_author_email);//被回复人邮箱
    $spam_confirmed = $comment->comment_approved;
    if ($spam_confirmed != 'spam' && $to != $admin_email && $to != $author_email) {
           $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 发出点, no-reply 可改为可用的 e-mail.
           $subject = '您在 [' . get_option("blogname") . '] 的留言有了新回复';
           $message = '
            <div style="background-color:#fff; border:1px solid #666666; color:#111; -moz-border-radius:8px; -webkit-border-radius:8px; -khtml-border-radius:8px;border-radius:8px; font-size:12px; width:702px; margin:0 auto; margin-top:10px;font-family:苹方,微软雅黑, Arial;">  
            <div style="background:#666666; width:100%; height:60px; color:white; -moz-border-radius:6px 6px 0 0; -webkit-border-radius:6px 6px 0 0; -khtml-border-radius:6px 6px 0 0; border-radius:6px 6px 0 0; ">
            <span style="height:60px; line-height:60px; margin-left:30px; font-size:12px;"> 您在 <a style="text-decoration:none; color:#00bbff;font-weight:600;"  href="' . get_option('home') . '">' . get_option('blogname') . '  </a> 的留言有新回复啦!</span></div>
            <div style="width:90%; margin:0 auto">
              <p><strong>' . trim(get_comment($parent_id)->comment_author) . '</strong>, 您好!</p>
              <p>您在 [' . get_option('blogname') . '] 的文章<strong>《' . get_the_title($comment->comment_post_ID) . '》</strong>上发表的评论有新回复啦,快来看看吧 ^_^:<br />
              <p>这是你的评论:</p>
              <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">'. trim(get_comment($parent_id)->comment_content) . '</p>
              <p><strong>' . trim($comment->comment_author) . '</strong> 给你的回复是:<br />
              <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">'. trim($comment->comment_content) . '</p>
              <p>您也可移步到文章<a style="text-decoration:none; color:#00bbff" href="' . htmlspecialchars(get_comment_link($comment->comment_parent)) . '"> 《'. get_the_title($comment->comment_post_ID) .'》 </a>查看完整回复内容</p>
              <p>欢迎再次光临 <a style="text-decoration:none; color:#00bbff" href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
              <p style="border-top:1px dashed #dbd1ce;"></p>
              <p>(此邮件由系统自动发出, 请勿回复。)</p>
              <p align="right">But如果您想更深入的和博主交流的话,欢迎回复哦^-^</p>
            </div></div>';
        $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
        $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
        $message = convert_smilies($message);//转换代码为表情
        wp_mail( $to, $subject, $message, $headers );
    }
}
////评论邮件回复结束------------------------------------------------------>

标签

发表评论

您必须启用javascript才能在此处查看验证码