关闭边栏(ESC)打开边栏(ESC)
之前本博客的评论有回复的时候,不会自动发送邮件给评论者,觉得不太好,所以决定也弄一个,于是从网上找了好多,最终使用了SMTP的方式来发送邮件,服务器是支缓Mail()的,暂时还不清楚为什么用Mail()来发送邮件发不出去。在评论者收到邮件后,可以看到相关的回复内容等,这邮件的内容也是自个CSS了一遍的,供有需要的朋友们参考了。
一、先得安装个插件:WP SMTP:
二、在function最后一个?>加入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
/* 开始*/ function comment_mail_notify ($comment_id){ $admin_notify='1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 ) $admin_email=get_bloginfo ('admin_email'); // $admin_email 可改为你指定的 e-mail. $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?get_comment ($parent_id)->comment_mail_notify : '0'; $spam_confirmed=$comment->comment_approved ; if ($parent_id!='' && $spam_confirmed!='spam' && $notify=='1'){ $wp_email='487042@'.preg_replace('#^www.#','',strtolower($_SERVER['SERVER_NAME'])); // e-mail 发出点, no-reply 可改为可用的 e-mail. $to=trim(get_comment ($parent_id)->comment_author_email ); $subject='您在 ['.get_option ("blogname").'] 的留言有了回复'; $message=' <div style="background-color:#0088CC;height:35px;line-height:35px;color:#fff;font-weight:bold;padding-left:20px;border-radius:10px 10px 0 0">您在 ['.get_option ("blogname").'] 的留言有了新的回复</div> <div style="border:1px solid #0088CC; color:#111;padding:0 20px;color:#686868;"> <p><span style="color:#CC0000;font-weight:bold">'.trim(get_comment ($parent_id)->comment_author ).'</span>,您好!</p> <p>您曾在<span style="color:#CC0000;font-weight:bold">《'.get_the_title ($comment->comment_post_ID ).'》</span>的留言:</p><div style="margin:10px;border:1px solid #dfdfdf;padding:20px;color:#a0a0a0;">'.trim(get_comment ($parent_id)->comment_content ).'</div> <p><span style="color:#CC0000;font-weight:bold">'.trim($comment->comment_author ).' </span>给您的回复:</p><div style="margin:10px;border:1px solid #dfdfdf;padding:20px;color:#a0a0a0;">'.trim($comment->comment_content ).'</div> <p>您可以点此 <a href="'.get_permalink ($comment->comment_post_ID ).'" style="text-decoration:none;color:#a0a0a0;;">查看回复的完整內容</a></p> <p>欢迎您再度光临:<a href="'.get_option ('home').'" style="text-decoration:none;color:#a0a0a0;;">'.get_option ('blogname').' ( '.get_option ('home').' )</a></p> </div> <div style="padding:20px;color:#fff;font-size:12px;background-color:#0088CC;border-radius:0 0 10px 10px">请注意:此邮件由[<span style="color:#bbb"> '.get_option ("blogname").'</span> ]自动发送,请勿回复<br>如果此邮件不是您请求的,请忽略并删除!</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'); /* 自动加勾选栏 */ function add_checkbox (){ echo '<input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked" class="chk_1"/><label for="comment_mail_notify">有人回复时邮件通知我</label>'; } add_action ('comment_form','add_checkbox'); |
三、收到的回复邮件样式效果如下:
注:在评论页面有个“有人回复时邮件通知我”这个复选框,这个也是DIY后美化的,可以参考这篇文章来修改:CSS美化复选框
可以使用 赞一个
今天你的网站图片加载好卡啊
奥 好久没更新了
以前也用过这个 ,自己diy邮件样式
这个不错。后续我也想弄个邮件回复。没有回复太不方便了。
PSp:你有自己域名,建议你用啊里的免费邮箱,那个特别不错。我都从GMAIL邮箱转到自己域名邮箱了,如:bokit@chanshome.net。
阿里邮箱?这是在哪里开启的,我一直用腾讯的QQ
这个是要看你的域名是不是在啊里那里买的,如果不时,迁入进去,能得到一个免费企业邮箱的机会,50个用户,最大附件有2G,绑定自己域名;这个,,,就不给啊里免费做广告了。 如果你是啊里的用户,你就要看看你这个申请免费企业邮箱是否过期了。在控制面板有一个企业邮箱选项的。进去就知道了。
搞得如何?
按你的方法试了,感觉没怎么快,估计是主题的区别
昨天测试了一下,主机支持mail函数,但回复评论通知的邮件发不出去,可能是由于主题的原因。
因为我用的是知更鸟的主题,已经集成了回复邮件通知的,但我修改了评论模块之后,就无法发送邮件了。(在主机中使用探针发送邮件是正常的!)然后我恢复原先的评论模块,就可以发送邮件了。我个人情况是这样,可能会对你有帮忙。
另外我将MAIL函数默认的sendmail发送邮件,改成了使用postfix来发送,可以说是秒发送,效果杠杠的!
补充:提交评论速度缓慢建议关闭后台设置—讨论中的 “有人发表评论时” 以及 “有评论等待审核时”邮件通知,毕竟这个实用性不大,但是可以换来评论的秒提交,网友体验大大提升!(此设置不会影响评论回复的邮件发送通知!)
谢谢,原来是这个原因,我今晚测试下,太感谢了
不建议使用QQ邮箱作为发件,可以尝试使用阿里的免费企业邮箱,很不错!
这个倒没留意 今天申请个试下
偶尔逛逛,贵站做得很赞!
空间支持mail()函数的话应该在后台常规选项中设置好邮箱地址就会自动发送邮件了吧?
刚去你博客了,留不了言,提交不了,有空加下友链,谢谢
你好,链接已添加,但由于您添加了Nofollow属性,所以我也只得添加Nofollow啦!~
No follow?我等会回去看下,这个倒没注意,我得百度看下这个是什么来的,新手不好意思。
嗯,已经发现啦~!
感谢提醒,我检查一下评论的问题!~~
友链贵站要显示的名称是什么呢?请告知一下我好添加
好的 你就用:爱css 谢谢
嗯,已经添加啦!~有可能你默认就是nofollow的,因为你的友链全部都是的噢。
PS:本站评论问题已修复,顺便添加了滑块自动提交评论和游客记住模式,感谢测试!
感谢来访问,刚开始我也是用了MAIL();的,后台也设好邮箱了,还是不成功,所以最终改为插件了。哈,又DIY了一个复选框的效果,欢迎欣赏!