博客使用的万网免费虚拟空间,今天发现博客无法发送评论提醒邮件,只能发送待审核和有新评论的通知,目前《使用的是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 /> ' . trim(get_comment($parent_id)->comment_content) . '</p> <p>' . trim($comment->comment_author) . ' 给您的回应:<br /> ' . 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');
替换完成后就可以正常的发送评论提醒邮件了,本博使用后正常。
公益传播:因为有你,爱不罕见。
转载请注明出处:大刘子 » 秀主题无法发送评论提醒邮件