作为一个wordpress站点,和用户的交互肯定是必不可少的,大家都知道有留言功能,但是我们给用户的回复,用户怎么收到呢?用户不可能时时刻刻的来你的网站查看你的回复,所以我们这里要用到SMTP(邮件协议)这个东西了,用它来给用户以邮件形式通知你的回复。
SMTP是我们本次用来解决回复这个问题的关键,百度教程一大堆,但是天底下哪有一帆风顺的事?像我昨天使用这个功能就遇到了许许多多的坑,万事具备,就等发邮件的时候,奔出来一个不能实例化mail,然后百度了很多解决方案始终不能解决我的问题,有时候出现某种报错,但是病因不一定就是这个,这也是我遇到的问题今天给大家分享出来。
本次要解决的问题有哪些?
- 如何使用以插件形式开启wordpress的smtp功能,实现后台回复邮件?
- 设置完插件,邮件无法发送,报错不能实例化mail
好了,首先简单说下我当时的操作步骤,我先是百度后在后台下载安装了WP SMTP这个插件,然后设置完后测试发送邮件,解决一直报错,提示不能实例mail,然后各种百度,有人说是有的主机不支持mail函数, 都需要通过 SMTP 来发送邮件,而且要开启 fsockopen 。但是 WordPress的SMTP发送方式为 steam_connect_client 而非fsockopen 。
然后我跟着操作更改了 /wp-include/class-smtp.php 的配置,网上给到的方法是注释掉该段代码(注意:现在列举的方法是没有实际解决我的问题,真正解决的方法是在后边)
$this->smtp_conn = @stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);
在后边添加下面这行代码。
$this->smtp_conn = fsockopen($host, $port, $errno, $errstr);
然而重启nginx,和主机后,还是一样的报错。
然后一直搜索解决的方法,试了N个,都是不能解决问题,突然在一个和我不同状况的博主那受到了启发,他也遇到这个问题,但是他的解决方法是查看linux主机的日志,在 /var/log这个目录下面查看mail的日志。他的报错是权限问题,随后解决了,我顺着他的思路也查看了mail的日志,解决发现如下报错,报错时间刚好是我调试时候的时间。
send-mail: fatal: parameter inet_interfaces: no local interface found for ::1
接着我百度这条报错的解决方法,在阿里云栖社区,看见解决方法为:查看postfix的配置文件 vi /etc/postfix/main.cf 原来是postfix是一个邮件服务器,
发现它的配置:
inet_interfaces = localhost
inet_protocols = all
更改为:
inet_interfaces = all
inet_protocols = all
果断将localhost改为all,保存退出。经过邮件测试,显示发送成功,我的测试邮箱也收到了反馈信息。原来所有的问题只是一个小小的配置在作祟,然而报错的代码差点将我引到别的方向去检查,所以这次的经验也让我认识到,报错的表象,不一定就是它的病因所在,一条思路不通,可以换一种思路去解决问题。
邮件发送插件(安装配置教程)
1、插件下载和启用
WordPress 后台 >> 插件 >> 安装插件,搜索插件“SMTP”,推荐使用 WP Mail SMTP by WPForms 插件(这个插件有 几百万个博客安装启用),然后点击『在线安装』并启用。
2、插件的配置
2.1 基本设置:WordPress 后台 >> 设置 >> WP Mail SMTP(或者 WordPress 后台 >> 插件 >> 已安装插件 >> WP Mail SMTP >> Settings),具体配置如下:
From Email:*******@qq.com(****@163.com)
From Name:战九幽
Mailer:Other SMTP
Return Path:不勾选
SMTP Host:smtp.qq.com(或者是别的smtp.163.com,这里以QQ为例)
SMTP Port:465
Encryption:SSL
Auto TLS:开启
Authentication:开启
SMTP Username:*******@qq.com(****@163.com)
SMTP Password:********(从邮箱服务商获取授权码登录第三方客户端邮箱)
2.2 邮件测试:配置好以后,你可以发送一封测试邮件,看是否成功。如下图所示,填写想要发送的邮箱地址,然后点击『Send Email』按钮,如果出现“Your email was sent successfully!”说明我们的插件配置正确,可以正常使用。
二、评论回复插件 Comment Reply Email Notification
完成第一个大步骤安装并配置好 WP Mail SMTP 后,接下来需要安装并启用 Comment Reply Email Notification 插件(后台搜索插件,安装和启用方法跟上文类似,这里不再展开),安装好并启动该插件后就可以实现评论回复邮件功能了。
第二个插件是不需要设置的,我们直接安装好后启用即可,经过我的测试,是没有问题的。今天的教程也是到此结束,希望对遇到和我同样问题的朋友有所帮助。如有问题可以在下面回复,或者在小焦的QQ群里面交流,谢谢阅读
评论3