给wordpress添加评论回复邮件通知功能

  • A+
所属分类:建博笔记
摘 要

如果你经常逛wordpress编写的网站,你就会发现在评论时需要输入邮箱,当别人给你的评论做出回复时,你的邮箱里就会收到一份邮件,这就是wordpress的评论回复邮件通知功能。这不仅可以提高用户回站的机率,还可以让评论者第一时间知道所评论内容的最新情况,一举两得。

邮件通知的前期设置

想要给评论者发送邮件通知,需要在【后台--设置--讨论】菜单中做几个设置。下面针对这个菜单中的相关选项做个简单介绍。

  • 默认文章设置

必须勾选【允许他人在新文章上发表评论】选项,否则浏览者不能评论时评论邮件通知的功能也就无法使用。

这个选项是针对整个博客而言的,如果你的某篇文章/页面设置了关闭评论,则该文章/页面就不能评论,但其他文章仍可以正常评论。

  • 其他评论设置

根据自己的需求来设置就好了。比如:什么情况下才可以发表评论,什么时候关闭评论,评论嵌套的层数,以及评论的显示方式。

  • 发送电子邮件通知我

用来设置什么情况下发送邮件给我。比如:当浏览者发表评论时,当评论需要审核时。

  • 在评论显示之前

用来设置什么时候显示评论。比如:评论经过审核,评论者之前的评论通过了审核时。

  • 评论审核

用来设置什么情况下评论需要审核。比如:评论中包含多条链接时,评论中包含你设定的某些字符时

  • 评论黑名单

用来设置哪些评论被定义为黑名单。比如:评论中出现了你设定的某些字符时,这条评论将被定义为黑名单,也就不会被显示出来,直接自动移入到回收站中。

  • 头像
    • 头像显示:要不要显示头像
    • 最高等级:什么级别的用户可以查看头像,一般选【适合任何年龄的访客】
    • 默认头像:就是当评论者没有在Gravatar网站注册时显示的头像

关于头像的更多介绍和使用不在本文讨论范围,故在此不再展开。

  • 本地头像权限

允许哪些人(权限)可以设置本地头像。

理论上,通过这里的操作,评论邮件通知的功能就可以正常使用了,但更多时候我们会发现邮件还是无法正常发送出去,这是因为wordpress的邮件通知默认是用mali()函数来实现的,而我们博客所在的主机/服务器不支持这个函数,因此我们需要使用其他方式来实现这个功能。

 

SMTP简介

实现的方式有很多,对于大多数人而言,都是通过SMTP方式来发送邮件。

SMTP发送邮件其实就是使用第三方邮箱的代发功能,一般我们注册的邮箱服务提供商都有这个功能,主要用于客户端软件,手机APP等的代收发操作。这个功能有些是默认开启的,有些则需要手动开启。这里以163邮箱为例,介绍一下如何开启SMTP功能。

首先:进入邮箱,找到【设置--POP3/SMTP/IMAP】选项

然后:勾选【PHOP3/SMTP服务】和【IMAP/SMTP服务】两个选项,并保存

其他相关的选项自行设置就好了。

 

SMTP发送邮件

如果你喜欢使用插件的话,可以在插件中使用【WP SMTP】这个关键词来搜索插件,排名靠前使用量多的插件都可以考虑,大多数都大同小异的,然后安装并启用,接着设置相关的选项,最后自己测试一下就可以了。

这里介绍一下以代码的方式实现SMTP发送邮件。

打开主题目录下的【functions.php】文件,在最后一个}前添加代码

//使用smtp发送邮件(请根据自己使用的邮箱设置SMTP)
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp( $phpmailer ) {
	$phpmailer->FromName = 'Hello boy'; //发件人名称
	$phpmailer->Host = 'smtp.163.com'; //发件邮箱的SMTP服务器地址
	$phpmailer->Port = 465; //发件邮箱的SMTP端口
	$phpmailer->Username = 'xxx@163.com'; //发件邮箱的邮箱账户
	$phpmailer->Password = '********'; //发件邮箱的邮箱密码(授权码)
	$phpmailer->From = 'xxx@163.com'; //用于显示在From上的邮箱账户
	$phpmailer->SMTPAuth = true;
	$phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25时->留空,465时->ssl)
	$phpmailer->IsSMTP();
}

代码说明

  • FromName:发件人名称

可以是你喜欢的任意文字,不一定非要使用邮箱账号

  • Host:发件邮箱的SMTP服务器地址

这个地址一般可以在邮箱的【设置】中找到。常用邮箱的SMTP地址及端口号展开

  阿里云邮箱--mail.aliyun.com
  POP3服务器地址:pop3.aliyun.com(SSL加密端口:995;非加密端口:110)
  SMTP服务器地址:smtp.aliyun.com(SSL加密端口:465;非加密端口:25)
  IMAP服务器地址:imap.aliyun.com(SSL加密端口:993;非加密端口:143)
  谷歌邮箱--mail.google.com
  POP3服务器地址:pop.gmail.com(SSL启用端口:995)
  SMTP服务器地址:smtp.gmail.com(SSL启用端口:587)
  新浪邮箱--mail.sina.com
  POP3服务器地址:pop3.sina.com.cn(端口:110)
  SMTP服务器地址:smtp.sina.com.cn(端口:25)
  Tom邮箱--mail.top.com
  POP3服务器地址:pop.tom.com(端口:110)
  SMTP服务器地址:smtp.tom.com(端口:25)
  网易邮箱--mail.163.com
  POP3服务器地址:pop.163.com(端口:110)
  SMTP服务器地址:smtp.163.com(端口:25)
  126邮箱--mail.126.com
  POP3服务器地址:pop.live.com(端口:995)
  SMTP服务器地址:smtp.126.com(端口:25)
  雅虎邮箱--mail.yahoo.com
  POP3服务器地址:pop.mail.yahoo.com
  SMTP服务器地址:smtp.mail.yahoo.com
  雅虎中国--mail.yahoo.com.cn
  POP3服务器地址:pop.mail.yahoo.com.cn(SSL加密端口:465;非加密端口:25)
  SMTP服务器地址:smtp.mail.yahoo.com.cn(SSL加密端口:995;非加密端口:110)
  Foxmail邮箱--foxmail.com
  POP3服务器地址:POP.foxmail.com(端口:110)
  SMTP服务器地址:SMTP.foxmail.com(端口:25)
  QQ邮箱--mail.qq.com
  POP3服务器地址:pop.qq.com(端口:110)
  SMTP服务器地址:smtp.qq.com(端口:25)
  搜狐邮箱--mail.sohu.com
  POP3服务器地址:pop3.sohu.com(端口:110)
  SMTP服务器地址:smtp.sohu.com(端口:25)
  HotMail邮箱--mail.hotmail.com
  POP3服务器地址:pop.live.com(端口:995)
  SMTP服务器地址:smtp.live.com(端口:587
  移动139邮箱--mail.139.com
  POP3服务器地址:POP.139.com(端口:110)
  SMTP服务器地址:SMTP.139.com(端口:25)
  中华网邮箱--mail.china.com
  POP3服务器地址:pop.china.com(端口:110)
  SMTP服务器地址:smtp.china.com(端口:25)

  • Port:发件邮箱的SMTP服务器端口

具体端口号见上面Host内的【展开】,以自己邮箱里的为准。

  • Username发件邮箱的邮箱账户

就是你要发给评论者所使用的邮箱账号

  • Password发件邮箱的邮箱密码(授权码

现在很多第三方邮件服务提供商都设置了在第三方邮箱服务中使用授权码来登录邮箱。如果你的邮箱需要使用授权码的,就输入授权码,如果没有这个功能的,就输入邮箱登录密码。

注意:此处输入的密码(授权码)是明文显示的,因此建议使用不同于日常使用的密码作为这个邮箱的密码(授权码)。

此处以163邮箱为例说明一下授权码的设置。

进入邮箱,找到【设置--POP3/SMTP/IMAP】选项,在左侧列表中找到【客户端授权密码】,在右侧开启这个功能。

首次开启需要你设置一个密码,这个密码不要与你的邮箱登录密码相同。
  • From用于显示在收件人邮箱From上的邮箱账户

这个邮箱一般情况下与Username相同。

  • SMTPAuth:SMTP身份认证

用来保证SMTP服务器安全,一般情况下保持默认或True

  • SMTPSecure:安全协议

这个要和前面的Port对应起来。port=25时留空,port=465时填写ssl

设置好了以后自己测试一下能不能正常发送邮件了,如果还是不能正常发送可能是没设置对,也可能是其他原因,需要一一排查。

Tips:建议在自己的网站里测试,我在本地测试的时候发现无论如何都收不到邮件,一度以为是没设置好,后来上传到博客后发现一切正常。

若文章图片、下载链接、网盘密码等信息出错,请留言反馈,博主将第一时间更新!如果喜欢,请打赏支持本站,谢谢大家!
isdola

发表评论

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

目前评论:4   其中:访客  2   博主  2

    • avatar 章鱼爱分享 1

      你好,大神,请教一个问题,打开【functions.php】文件,在最后一个}前添加代码 我的functions.php中没有这个}

        • avatar isdola Admin

          @章鱼爱分享 那就直接加在文件最后试试

            • avatar 章鱼爱分享 1

              @isdola 添加评论回复邮件通知功能的代码直接加在最后可以设置成功,如果再加上美化的那些代码后,网站就打不开了,提示网站遇到技术问题。

                • avatar isdola Admin

                  @章鱼爱分享 美化的代码在添加时要注意在代码前后的一对英文状态下的单引号,不要给替换掉了