WordPress免插件纯代码实现SMTP发送邮件通知及QQ邮箱发信教程(内附邮件通知美化版)

  • A+
所属分类:WordPress 优化

最近在串门时候发现我爱动感单车网没有添加邮件回复通知,问到才知道贵博主折腾过,但一直没成功实现。

对于一个网站而言,发送邮件的功能是必不可少的,评论回复后,自动发一封邮件提醒评论人,是提高用户体验的一大举措。

现在的主机一般都支持发送邮件,但是不同的主机由于函数限制或者某些其他原因,可能造成没办法正常发送邮件。这时候,我们可能就要借助第三方SMTP发送邮件。

今天就分享下怎么完美通过代码实现WordPress纯代码实现SMTP发送邮件通知及QQ邮箱发信教程。

WordPress免插件纯代码实现SMTP发送邮件通知及QQ邮箱发信教程(内附邮件通知美化版)

WordPress纯代码实现SMTP发送邮件通

(下面以QQ企业邮箱为例)

将下面代码中信息修改为自己信息,放进主题functions.php适当位置。

  1. //使用smtp发送邮件
  2. function mail_smtp( $phpmailer ) {
  3.     $phpmailer->FromName = 'Koolight『第9页』'; //发件人名称
  4.     $phpmailer->Host = 'smtp.exmail.qq.com'; //修改为你使用的邮箱SMTP服务器
  5.     $phpmailer->Port = 25//SMTP端口
  6.     $phpmailer->Username = 'no-reply@d9y.net'; //邮箱账户
  7.     $phpmailer->Password = '********'; //邮箱密码
  8.     $phpmailer->From = 'no-reply@d9y.net'; //邮箱账户
  9.     $phpmailer->SMTPAuth = true;
  10.     $phpmailer->SMTPSecure = ''//tls or ssl (port=25时->留空,465时->ssl)
  11.     $phpmailer->IsSMTP();
  12. }
  13. add_action('phpmailer_init', 'mail_smtp');

根据注释将发件人名称、邮箱账户及邮箱密码修改为自己信息。

使用QQ邮箱作为发信邮箱设置教程

QQ邮箱比较特殊,与其他邮箱相比,邮箱密码处不能填写QQ密码或QQ邮箱独立密码,而是需要先在QQ邮箱中设置。

设置方法

1.登陆QQ邮箱

2.选择左上角设置——账户——POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

3.开启POP3/SMTP服务与IMAP/SMTP服务

4.生成授权码

将下面代码中信息修改为自己信息,放进主题functions.php适当位置。

  1. //使用smtp发送邮件
  2. function mail_smtp( $phpmailer ) {
  3.     $phpmailer->FromName = 'Koolight『第9页』'; //发件人名称
  4.     $phpmailer->Host = 'smtp.qq.com'; //修改为你使用的邮箱SMTP服务器
  5.     $phpmailer->Port = 465//SMTP端口
  6.     $phpmailer->Username = '123456@qq.com'; //邮箱账户
  7.     $phpmailer->Password = '********'; //邮箱密码(此处填写QQ邮箱生成的授权码)
  8.     $phpmailer->From = '123456@qq.com'; //邮箱账户
  9.     $phpmailer->SMTPAuth = true;
  10.     $phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25时->留空,465时->ssl)
  11.     $phpmailer->IsSMTP();
  12. }
  13. add_action('phpmailer_init', 'mail_smtp');

根据注释将发件人名称、邮箱账户及邮箱密码修改为自己信息。

邮件回复样式淡蓝色美化版

可能细心的博主发现了,第9页博客邮件通知样式是修改过的淡蓝色美化版,现在也一并分享给大家。

将下面代码放进主题functions.php适当位置。

  1. function comment_mail_notify($comment_id) {
  2. $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
  3. $comment = get_comment($comment_id);
  4. $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
  5. $spam_confirmed = $comment->comment_approved;
  6. if (($parent_id != '') && ($spam_confirmed != 'spam')) {
  7. $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
  8. $to = trim(get_comment($parent_id)->comment_author_email);
  9. $subject = '您在 [' . $blogname . '] 中的留言有了新的回复';
  10. $message = '    <div style="color:#555;font:12px/1.5 微软雅黑,Tahoma,Helvetica,Arial,sans-serif;width:650px;margin:50px auto;border-top: none;box-shadow:0 0px 3px #aaaaaa;" ><table border="0" cellspacing="0" cellpadding="0"><tbody><tr valign="top" height="2"><td valign="top"><div style="background-color:white;border-top:2px solid #12ADDB;box-shadow:0 1px 3px #AAAAAA;line-padding:0 15px 12px;width:650px;color:#555555;font-family:微软雅黑, Arial;;font-size:12px;"><h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:8px 0 10px 8px;"><span style="color: #12ADDB;font-weight: bold;">&gt; </span>您在 <a style="text-decoration:none; color:#58B5F5;font-weight:600;" href="' . home_url() . '">' . get_option("blogname") . '</a> 博客上的留言有回复啦!</h2><div style="padding:0 12px 0 12px;margin-top:18px">
  11. <p>您好, ' . trim(get_comment($parent_id)->comment_author) . '! 您发表在文章 《' . get_the_title($comment->comment_post_ID) . '》 的评论:</p>
  12. <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">' . nl2br(strip_tags(get_comment($parent_id)->comment_content)) . '</p>
  13. <p>' . trim($comment->comment_author) . ' 给您的回复如下:</p>
  14. <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">' . nl2br(strip_tags($comment->comment_content)) . '</p>
  15. <p>您可以点击 <a style="text-decoration:none; color:#5692BC" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">这里查看回复的完整內容</a>,祝您天天开心,也欢迎再次光临 <a style="text-decoration:none; color:#5692BC" href="' . home_url() . '">' . get_option("blogname") . '</a>,谢谢。</p>
  16. <p style="padding-bottom: 15px;">(此邮件由系统自动发出, 请勿回复)</p></div></div></td></tr></tbody></table></div>';
  17. $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
  18. $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
  19. wp_mail( $to, $subject, $message, $headers );
  20. }}
  21. add_action('comment_post', 'comment_mail_notify');

好了,教程至此结束。

历史上的今天:

  • 我的微信
  • 扫一扫
  • weinxin
  • 我的微信公众号
  • 扫一扫
  • weinxin
avatar

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

目前评论:55   其中:访客  55   博主  0

    • avatar叶九秋1

      换个友情链接咋样?

        • avatarKoolight9

          @叶九秋 友情链接已加满,以后再增加吧。

        • avatar银色月航5

          最近我的邮箱突然无法发送邮件,奇怪呢,有空在折腾看看。

            • avatarKoolight9

              @银色月航 用代码还是挺好的。

            • avatar明月登楼6

              奇了怪了,放上就500错误!

                • avatarKoolight9

                  @明月登楼 主题是不是已经有这个功能了?

                • avatargodaddy优惠码2

                  朋友 交换链接吗

                    • avatarKoolight9

                      @godaddy优惠码 友链已加满,暂时没法再加了。

                    • avatar米粒在线1

                      好用。

                        • avatarKoolight9

                          @米粒在线 能有帮助最好了!

                        • avatarmster1

                          我知道怎么改了,但是出现点问题,能加您好友,请教吗?

                          • avatarmster1

                            但是第一次评论的时候,发送的不是这个模板啊,知道在哪里能改,第一次的吗?

                              • avatarKoolight9

                                @mster 那个是邮件通知,需要改WP文件的。

                              • avatar淘福利啦1

                                感觉还好吧!主要是CSS样式

                                  • avatarKoolight9

                                    @淘福利啦 这个css还差个自适应。