WordPress回复评论邮箱通知等邮件功能实现

介绍两种方法

1.使用代码(强烈推荐)
2.使用插件
如果懒可以使用第一种。

使用代码

以下代码直接插入的WordPress主题的functinos.php任意位置即可。
每段代码都有注释,简单配置一下放进去即可
第一段代码是设置启用WordPress的邮箱功能代码,
第二段是评论邮件回复通知的模板代码,可以根据自己的需求修改。(偷偷告诉你这个代码来自sakura主题)

//使用smtp发送邮件(请根据自己使用的邮箱设置SMTP)
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp( $phpmailer ) {
    $phpmailer->FromName = 'joke博客'; //发件人名称
    $phpmailer->Host = 'smtp.exmail.qq.com'; //修改为你使用的邮箱SMTP服务器
    $phpmailer->Port = 465; //SMTP端口
    $phpmailer->Username = 'joke@jokeo.cn'; //邮箱账户
    $phpmailer->Password = '123456'; //SMTP授权密码
    $phpmailer->From = 'joke@jokeo.cn'; //邮箱账户
    $phpmailer->SMTPAuth = true;
    $phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25时->留空,465时->ssl)
    $phpmailer->IsSMTP();
}

//评论邮件回复通知
function comment_mail_notify($comment_id){
    $mail_user_name = akina_option('mail_user_name') ? akina_option('mail_user_name') : 'joke';
    $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 = $mail_user_name . '@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
    $to = trim(get_comment($parent_id)->comment_author_email);
    $subject = '你在 [' . get_option("blogname") . '] 的留言有了回应';
    $message = '
      <div style="background: white;
      width: 95%;
      max-width: 800px;
      margin: auto auto;
      border-radius: 5px;
      border:#33b0dd 1px solid;
      overflow: hidden;
      -webkit-box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.12);
      box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.18);">
        <header style="overflow: hidden;">
            <img style="width:100%;z-index: 666;" src="https://i.niupic.com/images/2018/08/27/5ySK.png">
        </header>
        <div style="padding: 5px 20px;">
        <p style="position: relative;
        color: white;
        float: left;
        z-index: 999;
        background: #33b0dd;
        padding: 5px 30px;
        margin: -25px auto 0 ;
        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.30)">Dear ' . trim(get_comment($parent_id)->comment_author) . '</p>
        <br>
        <h3>您有一条来自<a style="text-decoration: none;color: #33b0dd" target="_blank" href="' .home_url(). '/">'. get_option("blogname") .'</a>的回复</h3>
        <br>
        <p style="font-size: 14px;">您在文章《' . get_the_title($comment->comment_post_ID) . '》上发表的评论:</p>
        <p style="border-bottom:#ddd 1px solid;border-left:#ddd 1px solid;padding-bottom:20px;background-color:#eee;margin:15px 0px;padding-left:20px;padding-right:20px;border-top:#ddd 1px solid;border-right:#ddd 1px solid;padding-top:20px">'
        . trim(get_comment($parent_id)->comment_content) . '</p>
        <p style="font-size: 14px;">' . trim($comment->comment_author) . ' 给您的回复如下:</p>
        <p style="border-bottom:#ddd 1px solid;border-left:#ddd 1px solid;padding-bottom:20px;background-color:#eee;margin:15px 0px;padding-left:20px;padding-right:20px;border-top:#ddd 1px solid;border-right:#ddd 1px solid;padding-top:20px">'
        . trim($comment->comment_content) . '</p>

      <div style="text-align: center;">
          <img src="https://cdn.jsdelivr.net/gh/moezx/cdn@3.1.4/img/other/hr.png" alt="hr" style="width:100%;
                                                                                                  margin:5px auto 5px auto;
                                                                                                  display: block;">
          <a style="text-transform: uppercase;
                      text-decoration: none;
                      font-size: 14px;
                      border: 2px solid #6c7575;
                      color: #2f3333;
                      padding: 10px;
                      display: inline-block;
                      margin: 10px auto 0; " target="_blank" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">点击查看回复的完整內容</a>
      </div>
        <p style="font-size: 12px;text-align: center;color: #999;">本邮件为系统自动发出,请勿直接回复<br>
        © '.date(Y).' '.get_option("blogname").'</p>
      </div>
    </div>
';
    $message = convert_smilies($message);
    $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');

提示:如果使用代码发现不能成功发送邮件

1.检查一下主机的mail是否开启(百度)
2.检查你第一段代码配置的是否正确比如端口和邮箱SMTP服务器地址

使用插件

直接在后台插件里搜索Easy WP SMTP安装启用
按照下图配置一下点左下角的 Save Change保存即可

相关推荐

4 条评论

  1. Mashiro

    6666
    其实76-85行可以删掉

    • joke

      根据个人使用情况修改喽!这是主题作者提供的(我只是个搬砖的!!!)那个好像是表情调用,应该有一定作用的。

      • Mashiro

        搞不好我就是作者呢 {{doge}}

        • joke

          咦你不说我还没发现。你竟然是作者,这就很尴尬。
          76-85具体是做什么的?

Mashiro进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫,分享到朋友圈

WordPress回复评论邮箱通知等邮件功能实现
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close