4.3之前版本BUG
新建的博客设置SMTP发信的时候,又遇到了曾经遇到的问题,记得当时遇到后折腾半天才找到解决半天
在class-smtp.php 200行找到了如下代码:
$socket_context = stream_context_create($options); //Suppress errors; connection failures are handled at a higher level $this->smtp_conn = @stream_socket_client( $host . ":" . $port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $socket_context );
根据PHP Manual给出的两个函数帮助,可以将上面的代码转化为
$this->smtp_conn = fsockopen($host,$port,$errno,$errstr,$timeout);
记得需要将fsockopen函数打开,然后就可以发信正常了。
4.3之后的版本已经修复了该BUG,在class-smtp.php的247~297行便是做了更改的内容,由之前的单一的使用stream_socket_client函数改为了使用前利用function_exist函数判断函数可用性后再调用的方式.
新问题解决办法
装上插件后始终提示:SMTP Error: Could not authenticate. 身份验证失败。
刚开始以为又要改什么代码,因为我老站和新站一个服务器,我又是直接将老站的SMTP插件复制过来的,那么唯一需要改的就是WP本身的文件,于是我直接将老站的class-smtp.php复制过来替换,然而并没有什么卵用。。。
这就神奇了哈,2个站同服,那么问题不是出在服务器上,不是出在函数上,也不是出在代码上,难道是QQ?
打开QQ邮箱瞎点了半天终于让我找到解决办法了。。。
在QQ邮箱账户设置中:
不知道从什么时候开始,QQ邮箱改成这种了,坑爹的,这不验证失败才怪,原来密码根本不是邮箱密码,而是授权码,将这个授权码复制到SMTP插件中的密码那一栏,然后保存在测试发现,果断成功。。。满满的坑。。。
本文作者为Mr.Wu,转载请注明,尊守博主劳动成果!
由于经常折腾代码,可能会导致个别文章内容显示错位或者别的 BUG 影响阅读; 如发现请在该文章下留言告知于我,thank you !
学习了。我的还不知道什么原因
哇 谷歌百度了一大堆 原来是密码填错了 难受啊
@zc哈哈,我最开始也是吐血,腾讯弄出个授权码来,又一点消息都没有,真奇葩
哇,非常感谢
谢谢谢
非常感谢! 果然解决了!