话说vps开启了mail函数,也装了sendmail组件,可还是没有wordpress评论回复的邮件通知,这是怎么回事呢?到现在我还是没有搞明白。
说一下,我目前的情况是:别人在我的wordpress上发表评论,我可以收到邮件通知,但是我回复给别人的评论却没有发送邮件通知评论者。
试了好多办法,还是不行,所幸wp大学给出了另一个回复评论邮件通知的办法,那就是使用smtp发送邮件提醒。以下代码实测成功。
1、下载smtpPHP工具,放到你wordpress主题根目录下面。
2、在你的functions.php中加入如下代码:
//评论回复邮件通知
/** * WordPress 使用 smtp 发送评论提醒邮件 * http://www.wpdaxue.com/wordpress-comment-mail-notify-smtp.html */ function comment_mail_notify_editFromClmao($comment_id) { $comment = get_comment($comment_id); $parent_id = $comment->comment_parent ? $comment->comment_parent : ''; $spam_confirmed = $comment->comment_approved; if (($parent_id != '') && ($spam_confirmed != 'spam')) { $to = trim(get_comment($parent_id)->comment_author_email); $subject = '您在 [' . get_option("blogname") . '] 的留言有了回应'; $message = ' <div style="border-bottom: #666666 1px solid; border-left: #666666 1px solid; background-color: #fff; margin: 10px auto 0px; width: 702px; font-family: 微软雅黑, arial; color: #111; font-size: 12px; border-top: #666666 1px solid; border-right: #666666 1px solid; -moz-border-radius: 8px; -webkit-border-radius: 8px; -khtml-border-radius: 8px; border-radius: 8px"> <div style="width: 100%; background: #666666; height: 60px; color: white; -moz-border-radius: 6px 6px 0 0; -webkit-border-radius: 6px 6px 0 0; -khtml-border-radius: 6px 6px 0 0; border-radius: 6px 6px 0 0"><span style="line-height: 60px; height: 60px; margin-left: 30px; font-size: 12px">您在<a style="color: #00bbff; font-weight: 600; text-decoration: none" href="' . get_option('home') . '">' . get_option('blogname') . '</a>博客上的留言有回复啦~~</span></div> <div style="margin: 0px auto; width: 90%"> <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p> <p>您曾在《' . 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>' . trim($comment->comment_author) . ' 给您的回应:</p> <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> <p>您可以点击 <a style="color: #00bbff; font-weight: 600; text-decoration: none" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回应内容</a></p> <p>欢迎再度光临 <a style="color: #00bbff; font-weight: 600; text-decoration: none" href="' . get_option('home') . '">' . get_option('blogname') . '</a>.如您有任何疑问,欢迎在博客留言,我会一一解答</p> <p>(此邮件由系统发出, 请勿回复.)</p> </div> </div>'; header("content-type:text/html;charset=utf-8"); ini_set("magic_quotes_runtime",0); require get_template_directory().'/PHPMailer/class.phpmailer.php'; try { $mail = new PHPMailer(true); $mail->IsSMTP(); $mail->CharSet='UTF-8'; $mail->SMTPAuth = true; $mail->Port = 25; $mail->Host = "smtp.yeah.net";//邮箱smtp地址,此处以yeah为例 $mail->Username = "sxamsky";//你的邮箱账号 $mail->Password = "你的密码";//你的邮箱密码 $mail->From = "sxamsky@yeah.net";//你的邮箱账号 $mail->FromName = get_option('blogname'); $to = $to; $mail->AddAddress($to); $mail->Subject = $subject; $mail->Body = $message; $mail->WordWrap = 80; //$mail->AddAttachment("f:/test.png"); //可以添加附件 $mail->IsHTML(true); $mail->Send(); } catch (phpmailerException $e) { // echo "邮件发送失败:".$e->errorMessage(); //测试的时候可以去掉此行的注释 } } } add_action('comment_post', 'comment_mail_notify_editFromClmao');
我修改了wp大学评论回复的默认样式。如下图所示:
OK,一切搞定!
代码转自:http://www.wpdaxue.com/wordpress-comment-mail-notify-smtp.html
好纠结,用了没反应
这个问题,我也不知道。。
最后还是没找到原因?
这个最后,还真是没有找到原因在哪。。。
VPS得要有邮件服务器组件支持是没错的了。现在用的哪里的VPS呀?
嗯 现在用的是傲游vps!
但是为什么会评论者会收不到回复呢?
博主的站点建设得不错瓮么
呵 就是一个博客,写些心得而已。不求多高的访问量。做电台也不错啊。
这个留言样式,咋这么熟悉。。。
呵 很多人都在用嘛。。
这个样式不错,收了,表示感谢
似乎评论,还需要注册,你的网站?