当前位置:爱推吧 » WordPress技巧 » vps开启了mail函数wordpress仍无法收到评论回复邮件的解决办法

vps开启了mail函数wordpress仍无法收到评论回复邮件的解决办法

话说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大学评论回复的默认样式。如下图所示:

wordpress评论回复邮件通知

OK,一切搞定!

代码转自:http://www.wpdaxue.com/wordpress-comment-mail-notify-smtp.html

12 个吐槽 on “vps开启了mail函数wordpress仍无法收到评论回复邮件的解决办法”

发表评论

电子邮件地址不会被公开。 必填项已用*标注