本站一直致力于 WordPress 主题下载和 WordPress 基础教程的分享发布,感谢大家多日来的支持和鼓励。今天说到的这个 WordPress 评论邮件提醒和 WordPress 邮件发送失败的解决方案,原教程来自小编的好友兼友情链接用户 CREEKOO 的,了解更多 CREEKOO 的朋友请到友情链接处访问,感谢 CREEKOO 的分享!
我前些天制作的一款简洁类的 WordPress 博客主题 Laconic 分享给大家后,很多人问我,我站里的 WordPress 评论邮件提醒功能是这么实现的,当时我很简单的回复下代码实现,可之后发现很多朋友都有这样的问题,所以今天小编起草了这份教程,供大家使用,望能给大家在 WordPress 使用方面带来方便,也欢迎大家收藏我们,多多关注我们!
下面先说 WordPress 评论邮件提醒功能的实现方法吧!
其实方法很简单,在 WordPress 主题根目录下找到 functions.php 文件,用专门的编写代码软件将下面的代码加入进去
- function comment_mail_notify($comment_id) {
- $admin_email = get_bloginfo ('admin_email');
- $comment = get_comment($comment_id);
- $comment_author_email = trim($comment->comment_author_email);
- $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
- $to = $parent_id ? trim(get_comment($parent_id)->comment_author_email) : '';
- $spam_confirmed = $comment->comment_approved;
- if (($parent_id != '') && ($spam_confirmed != 'spam') && ($to != $admin_email) && ($comment_author_email == $admin_email)) {
- $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME']));
- $subject = '您在 [' . get_option("blogname") . '] 的评论有新的回复';
- $message = '
- <div style="font: 13px Microsoft Yahei;padding: 0px 20px 0px 20px;border: #ccc 1px solid;border-left-width: 4px; max-width: 600px;margin-left: auto;margin-right: auto;">
- <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p>
- <p> 您曾在 [' . get_option("blogname") . '] 的文章 《' . get_the_title($comment->comment_post_ID) . '》 上发表评论:<br />'
- . nl2br(get_comment($parent_id)->comment_content) . '</p>
- <p>' . trim($comment->comment_author) . ' 给您的回复如下:<br>'
- . nl2br($comment->comment_content) . '</p>
- <p style="color:#f00"> 您可以点击 <a href="' . htmlspecialchars(get_comment_link($parent_id, array('type' => 'comment'))) . '"> 查看回复的完整內容</a></p>
- <p style="color:#f00"> 欢迎再次光临 <a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p>
- <p style="color:#999">(此邮件由系统自动发出,请勿回复。)</p>
- </div>';
- $message = convert_smilies($message);
- $from = "From: "" . get_option('blogname') . "" <$wp_email>";
- $headers = "$from
Content-Type: text/html; charset=" . get_option('blog_charset') . "
"; - wp_mail( $to, $subject, $message, $headers );
- }
- }
- add_action('comment_post', 'comment_mail_notify');
通过以上代码即可实现 WordPress 评论邮件提醒功能,肿么样,是否很简单,免去了这个插件那个插件的使用了?
但是从这个教程中,会衍生出另一个问题,那就是很多 win 主机还是发送不了邮件,或者 linux 的主机发邮件过于缓慢,均会造成评论速度变慢的问题,那么如何解决 WordPress 邮件发送失败的问题呢?那么就继续看教程吧
方法很简单,那就是用代码的方法将 WordPress 自带发送邮件的功能用外部邮箱的 SMTP 来实现!这样的方法好处是评论速度快,且 win 主机和 linux 主机均可以快速发出邮件,从让解决上面那个教程带来的 WordPress 邮件发送失败的问题!
那么教程同样是在在 WordPress 主题根目录下找到 functions.php 文件,加入下面的代码
- add_action('phpmailer_init', 'mail_smtp');
- function mail_smtp( $phpmailer ) {
- $phpmailer->FromName = 'CreeKoo';
- $phpmailer->Host = 'smtp.qq.com';
- $phpmailer->Port = 25;
- $phpmailer->Username = '****@qq.com';
- $phpmailer->Password = '*********';
- $phpmailer->From = '*****@qq.com';
- $phpmailer->SMTPAuth = true;
- $phpmailer->SMTPSecure = '';
- $phpmailer->IsSMTP();
- }
将代码里的信息替换成自己的即可,这里要说到的是邮箱的 SMTP 端口有 25 或者是 465,大家可以试试。。。
教程就到这了。。需要的朋友可以尝试下哈
如果看不懂此教程的朋友可以加入我们的 WordPress 技术交流群,群号文章的下方蓝色文字有!也可以找小编我付费辅助!哈哈
2013/8/31 更新
这里要再特殊的说一下,在 lnmp 环境下,无论你是安装了 sendmail 组件还是 Shell 下的 mail 命令都 OK 的情况下,还是不能发送邮件的话,那么就需要到 php.ini 文件里修改配置了,
军哥的 lnmp 的 php.ini 文件在/usr/local/php/etc/php.ini 查找到 sendmail_path 修改为:sendmail_path = /usr/sbin/sendmail -t -i 或者开放 pfsockopen 、 fsockopen 两个函数即可 OK!!!