秀主题无法发送评论提醒邮件

博客使用的万网免费虚拟空间,今天发现博客无法发送评论提醒邮件,只能发送待审核和有新评论的通知,目前《使用的是SMTP发送方式》,起初以为是虚拟空间的问题,后来发现更换主题后可以正常发送,换为未修改的秀主题后问题依旧存在,可以肯定是主题的原因了,解决方法直接替换邮件回复的相应代码。

在文件functions.xiu.php内搜索comment notify,定位到位置,替换整段代码如下,如果没修改的话就是 829-860 行。

/* 
 * comment notify
 * ====================================================
*/
 function comment_mail_notify($comment_id) {
 $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;
 }
 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 = 'Hi,您在 [' . get_option("blogname") . '] 的留言有人回复啦!';
 $message = '
 <div style="color:#333;font:100 14px/24px microsoft yahei;">
 <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
 <p>您曾在《' . get_the_title($comment->comment_post_ID) . '》的留言:<br /> &nbsp;&nbsp;&nbsp;&nbsp; '
 . trim(get_comment($parent_id)->comment_content) . '</p>
 <p>' . trim($comment->comment_author) . ' 给您的回应:<br /> &nbsp;&nbsp;&nbsp;&nbsp; '
 . trim($comment->comment_content) . '<br /></p>
 <p>点击 <a href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看回应完整內容</a></p>
 <p>欢迎再次光临 <a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
 <p style="color:#999">(此邮件由系统自动发出,请勿回复.)</p>
 </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');

替换完成后就可以正常的发送评论提醒邮件了,本博使用后正常。

SPEAK那你很棒哦!

转载请注明出处:大刘子 » 秀主题无法发送评论提醒邮件

支持博主分享一下

评论 7

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 李阳博客我的原版的就支持的。可能是你环境的问题回复
    • Han换成VPS使用原版主题依旧不能发送评论通知,估计是人品问题了回复
      • 李阳博客也可能是你postfix的配置。你可以看看var/log/maillog回复
        • Han更换发邮件的这段代码就没问题,或许是我主题的原因回复
  2. 搬砖少年过来溜达一圈~~回复