实现评论邮件提醒方式有2种,一种是插件方式,一种是直接用代码实现,下面我会一一展示,用插件实现会可能会拖慢网站速度,所以推荐使用代码方式。

SMTP插件

WordPress的SMTP插件最常见的有 Easy WP SMTP WP SMTP 二选一即可,由于现在国内访问WordPress官网429,我从官网下载了这2款插件打包放下面,方便使用。

easy-wp-smtp

wp-smtp.1.1.10
<h4>SMTP代码</h4>
用代码的好处呢就是特别简洁,而且WordPress 本身是有集成 phpmailer 邮件的,所以直接折腾过来用就可以啦!

以下就是WordPress SMTP的全部代码,添加到当前主题的 functions.php 文件中即可

//使用 smtp 发邮件
add_action('phpmailer_init', 'fanly_mail_smtp');
function fanly_mail_smtp( $phpmailer ) {
    $phpmailer-&gt;IsSMTP();
    $phpmailer-&gt;SMTPAuth = true;//启用 SMTPAuth 服务
    $phpmailer-&gt;Port = 465;//MTP 邮件发送端口,这个和下面的 SSL 验证对应,如果这里填写 25,则下面参数为空
    $phpmailer-&gt;SMTPSecure ="ssl";//是否验证 ssl,与 MTP 邮件发送端口对应,如果不填写,则上面的端口须为 25
    $phpmailer-&gt;Host = "smtp.exmail.qq.com";//邮箱的 SMTP 服务器地址,目前 smtp.exmail.qq.com 为 QQ 邮箱和腾讯企业邮箱 SMTP
    $phpmailer-&gt;Username = "blog@leiue.com";//你的邮箱地址
    $phpmailer-&gt;Password ="***************";//你的邮箱登录密码
}
//发件地址记得和 smtp 邮箱一致即可
add_filter( 'wp_mail_from', 'fanly_wp_mail_from' );
function fanly_wp_mail_from() {
    return 'blog@leiue.com';
}

把以上对应信息修改为自己的即可。

美化代码

以下是代码,点击展开查看

&lt;?php
 //定义界面顶部区域内容,请注意修改您的主题目录
$email_bg =get_bloginfo('url') .'/wp-content/themes/WillStart/images/email.jpg';
define ('emailbg', $email_bg );
$email_headertop = '
    &lt;div class="emailpaged" style="background-image: url('.emailbg.');-webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;background-size: cover;background-position: center center;background-repeat: no-repeat;"&gt;
        &lt;div class="emailcontent" style="width:100%;max-width:720px;text-align: left;margin: 0 auto;padding-top: 80px;padding-bottom: 20px"&gt;
            &lt;div class="emailtitle"&gt;
                &lt;h1 style="color:#fff;background: #51a0e3;line-height:70px;font-size:24px;font-weight:normal;padding-left:40px;margin:0"&gt;
';
define ('emailheadertop', $email_headertop );
 
 $email_headerbot = '
                &lt;/h1&gt;
                &lt;div class="emailtext" style="background:#fff;padding:20px 32px 40px;"&gt;
';
define ('emailheaderbot', $email_headerbot );
 
 //定义界面底部区域内容,请注意修改下面广告图片地址
$email_footer = '
                &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;(此邮件由系统自动发出, 请勿回复。)&lt;/p&gt;
                &lt;/div&gt;
                &lt;div class="emailad" style="margin-top: 24px;"&gt;
                    &lt;a href="' . get_bloginfo('url') . '"&gt;
                        &lt;img src="http://reg.163.com/images/secmail/adv.png" alt="" style="margin: auto;width:100%;max-width:700px;height: auto;"&gt;
                    &lt;/a&gt;
                &lt;/div&gt;
                &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;text-align:right;padding:0 32px"&gt;邮件来自:&lt;a href="' . get_bloginfo('url') . '" style="color:#51a0e3;text-decoration:none"&gt;' . get_option("blogname") . '&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
';
define ('emailfooter', $email_footer );
 
 //修改网站默认发信人以及邮箱
function new_from_name($email){
    $wp_from_name = get_option('blogname');
    return $wp_from_name;
}
function new_from_email($email) {
    $wp_from_email = get_option('admin_email');
    return $wp_from_email;
}
add_filter('wp_mail_from_name', 'new_from_name');
add_filter('wp_mail_from', 'new_from_email');
//评论通过通知评论者
add_action('comment_unapproved_to_approved', 'iwill_comment_approved');
function iwill_comment_approved($comment) {
  if(is_email($comment-&gt;comment_author_email)) {
    $post_link = get_permalink($comment-&gt;comment_post_ID);
    
    // 邮件标题,可自行更改
    $title = '您在 [' . get_option('blogname') . '] 的评论已通过审核';
    
    // 邮件内容,按需更改。如果不懂改,可以给我留言
    $body = emailheadertop.'留言审核通过通知'.emailheaderbot.'&lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;您在' . get_option('blogname') . '《&lt;a href="'.$post_link.'"&gt;'.get_the_title($comment-&gt;comment_post_ID).'&lt;/a&gt;》发表的评论:&lt;/p&gt;
            &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;padding:10px 20px;background:#f8f8f8;margin:0px"&gt;'.$comment-&gt;comment_content.'&lt;/p&gt;
            &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;已通过管理员审核并显示。&lt;br /&gt;
            您可在此查看您的评论:&lt;a href="'.get_comment_link( $comment-&gt;comment_ID ).'"&gt;前往查看&lt;/a&gt;&lt;/p&gt;'.emailfooter;
            
    @wp_mail($comment-&gt;comment_author_email, $title, $body, "Content-Type: text/html; charset=UTF-8");        
  }
}
/* 邮件评论回复美化版 */
function comment_mail_notify($comment_id) {
    $admin_email = get_bloginfo ('admin_email'); 
    $comment = get_comment($comment_id);
    $comment_author_email = trim($comment-&gt;comment_author_email);
    $parent_id = $comment-&gt;comment_parent ? $comment-&gt;comment_parent : '';
    $to = $parent_id ? trim(get_comment($parent_id)-&gt;comment_author_email) : '';
    $spam_confirmed = $comment-&gt;comment_approved;
    if (($parent_id != '') &amp;&amp; ($spam_confirmed != 'spam') &amp;&amp; ($to != $admin_email)) {
    $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
    $subject = '您在 [' . get_option("blogname") . '] 的留言有了新回复';
    $message = emailheadertop.'您在' . get_option("blogname") . '上的留言有回复啦!'.emailheaderbot.'
      &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;' . trim(get_comment($parent_id)-&gt;comment_author) . ', 您好!&lt;/p&gt;
      &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;您在《' . get_the_title($comment-&gt;comment_post_ID) . '》的留言:&lt;br /&gt;
      &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;padding:10px 20px;background:#f8f8f8;margin:0px"&gt;'. trim(get_comment($parent_id)-&gt;comment_content) . '&lt;/p&gt;
      &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;' . trim($comment-&gt;comment_author) . ' 给你的回复:&lt;br /&gt;
      &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;padding:10px 20px;background:#f8f8f8;margin:0px"&gt;'. trim($comment-&gt;comment_content) . '&lt;/p&gt;
      &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;你可以点击&lt;a href="' . htmlspecialchars(get_comment_link($parent_id, array('type' =&gt; 'comment'))) . '"&gt;查看完整内容&lt;/a&gt;&lt;/p&gt;
      &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;欢迎再度光临&lt;a href="' . get_option('home') . '"&gt;' . get_option('blogname') . '&lt;/a&gt;&lt;/p&gt;
            '.emailfooter;
    $from = "From: \"" . get_option('blogname') . "\" &lt;$wp_email&gt;";
    $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');
// 博客后台登录失败时发送邮件通知管理员
function wp_login_failed_notify(){
    date_default_timezone_set('PRC');
    $admin_email = get_bloginfo('admin_email');
    $to = $admin_email;
    $subject = '【登录失败】有人使用了错误的用户名或密码登录' . get_bloginfo('name') . '!';
    $message =  emailheadertop . get_bloginfo('name') . '账户登录失败通知!'.emailheaderbot.'
            &lt;div style="padding:0;font-weight:bold;color:#6e6e6e;font-size:16px"&gt;尊敬的管理员您好!&lt;/div&gt;
            &lt;p style="color: red;font-size:13px;line-height:24px;"&gt;' . get_bloginfo('name') . '有一条登录失败的记录产生,若登录操作不是您产生的,请及时注意网站安全!&lt;/p&gt;
            &lt;table cellpadding="0" cellspacing="0" border="0" style="width:100%;border-top:1px solid #eee;border-left:1px solid #eee;color:#6e6e6e;font-size:16px;font-weight:normal"&gt;
                &lt;thead&gt;&lt;tr&gt;&lt;th colspan="2" style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;background:#f8f8f8;"&gt;失败信息如下&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
                &lt;tbody&gt;
                    &lt;tr&gt;
                        &lt;td style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;width:100px"&gt;登录名&lt;/td&gt;
                        &lt;td style="padding:10px 20px 10px 30px;border-right:1px solid #eee;border-bottom:1px solid #eee;line-height:30px"&gt;' . $_POST['log'] . '&lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center"&gt;尝试的密码&lt;/td&gt;
                        &lt;td style="padding:10px 20px 10px 30px;border-right:1px solid #eee;border-bottom:1px solid #eee;line-height:30px"&gt;' . $_POST['pwd'] . '&lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;"&gt;登录时间&lt;/td&gt;
                        &lt;td style="padding:10px 20px 10px 30px;border-right:1px solid #eee;border-bottom:1px solid #eee;line-height:30px"&gt;' . date("Y-m-d H:i:s") . '&lt;/td&gt;
                    &lt;/tr&gt;  
                    &lt;tr&gt;
                        &lt;td style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;"&gt;登录IP&lt;/td&gt;
                        &lt;td style="padding:10px 20px 10px 30px;border-right:1px solid #eee;border-bottom:1px solid #eee;line-height:30px"&gt;' . $_SERVER['REMOTE_ADDR'] . '&lt;/td&gt;
                    &lt;/tr&gt;               
                &lt;/tbody&gt;
            &lt;/table&gt;
            '.emailfooter;
    wp_mail( $to, $subject, $message, "Content-Type: text/html; charset=UTF-8" );
}
add_action('wp_login_failed', 'wp_login_failed_notify');
add_filter('logout_url', 'mk_logout_redirect_home', 10, 2);
function mk_logout_redirect_home($logouturl, $redir){
    $redir = home_url();
    return $logouturl . '&amp;redirect_to=' . urlencode($redir);
}
//用户更新账户通知用户
function user_profile_update( $user_id ) {
        $site_url = get_bloginfo('wpurl');
        $site_name = get_bloginfo('wpname');
        $user_info = get_userdata( $user_id );
        $to = $user_info-&gt;user_email;
        $subject = "".$site_name."账户更新";
        $message = emailheadertop.'您在' .$site_name. '账户资料修改成功!'.emailheaderbot.'&lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;亲爱的 ' .$user_info-&gt;display_name . '&lt;br/&gt;您的资料修改成功!&lt;br/&gt;谢谢您的光临&lt;/p&gt;'.emailfooter;
        wp_mail( $to, $subject, $message, "Content-Type: text/html; charset=UTF-8");
}
add_action( 'profile_update', 'user_profile_update', 10, 2);
//用户账户被删除通知用户
function iwilling_delete_user( $user_id ) {
    global $wpdb;
    $site_name = get_bloginfo('name');
    $user_obj = get_userdata( $user_id );
    $email = $user_obj-&gt;user_email;
    $subject = "帐号删除提示:".$site_name."";
    $message = emailheadertop.'您在' .$site_name. '的账户已被管理员删除!'.emailheaderbot.'&lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;如果您对本次操作有什么异议,请联系管理员反馈!&lt;br/&gt;我们会在第一时间处理您反馈的问题.&lt;/p&gt;'.emailfooter;
    wp_mail( $email, $subject, $message, "Content-Type: text/html; charset=UTF-8");
}
add_action( 'delete_user', 'iwilling_delete_user' );
// WordPress 发布新文章后邮件通知已注册的用户
function newPostNotify($post_ID) {
    if( wp_is_post_revision($post_ID) ) return;
    global $wpdb;
    $site_name = get_bloginfo('name');
    $post_contents = get_post($post_ID)-&gt;post_content;
    $get_post_info = get_post($post_ID);
    if ( $get_post_info-&gt;post_status == 'publish' &amp;&amp; $_POST['original_post_status'] != 'publish' ) {
        // 读数据库,获取所有用户的email
        $wp_user_email = $wpdb-&gt;get_col("SELECT DISTINCT user_email FROM $wpdb-&gt;users");
        // 邮件标题
        $subject = 'Hi!'.$site_name.'发布新文章啦!';
        // 邮件内容
        $message = emailheadertop.$site_name. '发布新文章啦!'.emailheaderbot.'
        &lt;div style="padding:0;font-weight:bold;color:#6e6e6e;font-size:16px"&gt;文章标题:' . get_the_title($post_ID) . '&lt;/div&gt;
        &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;"&gt;' . mb_strimwidth($post_contents, 0, 320,"...") . '&lt;/p&gt;
        &lt;p style="color: #6e6e6e;font-size:13px;line-height:24px;text-align:right"&gt;&lt;a href="' . get_permalink($post_ID) . '"&gt;查看全文&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;
        '.emailfooter;
        // 发邮件
        $message_headers = "Content-Type: text/html; charset=\"utf-8\"\n";
        wp_mail($wp_user_email, $subject, $message, $message_headers); 
    }
}
add_action('publish_post', 'newPostNotify');
?&gt;

WordPress邮件通知系统美化版,功能如下:

  • 1、评论审核通过通知用户
  • 2、评论回复通知用户
  • 3、网站后台登录失败通知管理员
  • 4、注册用户资料信息更新通知用户
  • 5、注册用户账户被管理员删除通知用户
  • 6、网站发布新文章通知用户

使用方法如下:

Step1、下载notify.php,解压以后放在您的主题文件夹下  邮件美化文件

Step2、在functions.php中进行调用

include_once('notify.php');
  注意事项:
  • 1、注意nitify.php的放置位置以及调用路径必须一致
  • 2、下载email.jpg文件,放在主题的images文件夹下面,请与代码第三行地址保持一致
  • 3、代码26行定义了一个广告图片,建议大家使用photoshop制作以后换成自己的
  • 4、174行定义了摘要显示字数,您可以随意换成您自己的哦
Last modification:April 26th, 2020 at 05:21 pm
如果觉得我的文章对你有用,请随意赞赏