WordPress实现回复文章评论后发送邮件通知的功能
WordPress实现回复文章评论后发送邮件通知的功能
发布时间:2016-12-23 来源:查字典编辑
摘要:本文实例讲述了WordPress实现回复文章评论后发送邮件通知的功能。分享给大家供大家参考,具体如下:很多时候,人们都希望在自己的评论被管理...

本文实例讲述了WordPress实现回复文章评论后发送邮件通知的功能。分享给大家供大家参考,具体如下:

很多时候,人们都希望在自己的评论被管理员回复后会收到通知。该函数的作用就是回复后自动邮件通知评论者。

把下面的代码加到wordpress的主题函数里面,然后修改下邮件帐号密码。

该函数是针对SAE平台的wordpress,非SAE平台不能使用,有需要的话留言我也会写出相应方法。

//邮件回复

function comment_mail_notify($comment_id) {

define('MAIL_SMTP', 'smtp.exmail.qq.com'); //smtp服务器

define('MAIL_PORT', 25); //smtp端口

define('MAIL_SENDEMAIL', '123456789@qq.com'); //发送邮件帐号

define('MAIL_PASSWORD', '123456'); //发送邮件密码

$admin_notify = '1';

$admin_email = get_bloginfo ('admin_email');

$comment = get_comment($comment_id);

$comment_author_email = trim($comment->comment_author_email);

$parent_id = $comment->comment_parent ? $comment->comment_parent : '';

global $wpdb;

if ($wpdb->query("Describe {$wpdb->comments} comment_mail_notify") == '')

$wpdb->query("ALTER TABLE {$wpdb->comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");

if (($comment_author_email != $admin_email && isset($_POST['comment_mail_notify'])) || ($comment_author_email == $admin_email && $admin_notify == '1'))

$wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'");

$notify = $parent_id ? '1' : '0';

$spam_confirmed = $comment->comment_approved;

if ($parent_id != '' && $spam_confirmed != 'spam' && $notify == '1') {

$wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME']));

$to = trim(get_comment($parent_id)->comment_author_email);

$subject = '你在' . get_option("blogname") . '回复被关注啦~';

$message = '

<div>

<div>

<div>'.get_bloginfo("name").'</div>

<div>你在 '. get_the_title($comment-&gt;comment_post_ID) .' 的评论有了回复:</div>

</div>

<div>

<div><span>'. trim(get_comment($parent_id)-&gt;comment_author) .'</span>:'. trim(get_comment($parent_id)-&gt;comment_content) .'</div>

<div><span>'. trim($comment-&gt;comment_author) .'</span>:'. trim($comment-&gt;comment_content) .'</div>

<p>点击<a href="' . htmlspecialchars(get_comment_link($parent_id)) . 'margin-bottom: 10px;">(此邮件由系统发出,无需回复.)</p>

</div>

</div>

';

$from = "From: "" . get_option('blogname') . "" <$wp_email>";

$headers = "$fromnContent-Type: text/html; charset=" . get_option('blog_charset') . "n";

$mail = new SaeMail(); //对象

$mail->setOpt(array( 'from' => 'admin@xtwind.com', 'to' => trim($to),//接收信箱

'smtp_host' => MAIL_SMTP , //host

'smtp_port' => MAIL_PORT, //port

'smtp_username' => MAIL_SENDEMAIL,

'smtp_password' => MAIL_PASSWORD,

'subject' => $subject,

'content' => $message,

'content_type' => 'HTML'

// 'tls' => true,

//'charset' => 'gbk' ) );

$ret = $mail->send();

}

}

add_action('comment_post', 'comment_mail_notify');

如果使用上面的不行,可以看看前面这篇文章:

《php使用SAE原生Mail类实现各种类型邮件发送的方法》

希望本文所述对大家基于wordpress的网站建设有所帮助。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新WordPress学习
热门WordPress学习
CMS教程子分类