最近有俍友和我反应,每次留言都要输入一遍信息很麻烦,希望我可以把注册用户功能开启。好的建议一定要执行,老俍开启注册用户功能后却发现,WordPress 无法发送激活邮件给注册用户,这不是瞎菜了。
根据网上的说明与实际操作整理了一份,《 WordPress 程序万网主机 smtp 发邮件失败解决办法》的文章,希望可以帮到你。
我的虚拟主机是阿里云(查看我的主机配置)的。安装的是 WordPress 4.9.8博客系统。使用的邮件发送插件是 WP Email SMTP,之前也设置过用户评论回复功能,一切正常。但就是没有新用户注册激活邮件。
解决办法,请按照下面步骤操作:
1.打开阿里云虚拟主机的后台,从高级设置的 php.ini 设置中把 fsockopen 开启。如下图:
2.进行修改 /wp-includes/class-smtp.php 中大概在270行左右(可以通过下面代码进行查询)
$socket_context = stream_context_create($options); $this->smtp_conn = @stream_socket_client( $host . ":" . $port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $socket_context );
3.把上面代码修改为如下代码:下面第一个是直接删掉,第二个是注释掉(为了以后可能还有别的用处),请按自己需求选择其中一种。
$this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout);
/** $socket_context = stream_context_create($options); set_error_handler(array($this, 'errorHandler')); **/ $this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout); /** stream_socket_client( $host . ":" . $port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $socket_context ); **/
当我完成了上述操作以为大功告成,测试了一下结果还是没有起到作用。
我又重新分析了一下问题,第一,SMTP 的问题,我用了 QQ 邮箱和网易邮箱都做过测试除了激活邮件其他正常;第二,需要改的程序没有改好,又对比了几个网站,应该没问题;第三,smtp 插件的问题,但是插件也可发送别的邮件呀。
借用福尔摩斯一句话“排除所有不可能的因素,剩下的结果,即使再不可思议,也是事实的真相”。问题一、二都是刚刚处理完成,只有问题三的 SMTP 插件是早就安装的,还是换个别的插件试试吧。
万万没想到,在测试第三插件 easy wp smtp 设置完成后,问题解决了。注册用户可以收到激活邮件了,我去,这是啥情况!
好吧,我也懒得去想啥情况了,反正黑猫白猫能抓到老鼠就是好猫。重点提示:管理员邮箱必须和 smtp 插件是一个邮箱才可以。
备份一下QQ邮箱与网易邮箱的设置:
QQ邮箱:smtp.qq.com 端口号:465
网易邮箱:smtp.163.com 端口号:465
也许还有一种情况,邮件是收到了,但是用户就是不能激活密码。密码邮件提示:“您的密码重设链接无效,请在下方请求新链接。”请看我另外一篇文章《WordPress新用户不能成功激活密码的解决办法》。
原创不易,希望保留原文链接转载,原文链接:https://oneinf.com/tech/yy/wp/2519.html
评论列表(2条)
照着老俍推荐的插件,我的博客也弄上了这个功能,简单测试了一下,很实用
@wehut:很高兴能帮到你