SMTP Error: Could not authenticate.解决方法

Mr.Wu 6,626 5

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插件中的密码那一栏,然后保存在测试发现,果断成功。。。满满的坑。。。

广告

打赏
发表评论 取消回复
表情 图片 链接 代码

  1. zc
    zc Lv 1

    哇 谷歌百度了一大堆 原来是密码填错了 难受啊

    • Mr.Wu
      Mr.Wu Lv 3

      @zc哈哈,我最开始也是吐血,腾讯弄出个授权码来,又一点消息都没有,真奇葩

  2. 止于至善

    哇,非常感谢

  3. 0807
    0807 Lv 1

    谢谢谢

  4. 姬小野
    姬小野 Lv 1

    非常感谢! 果然解决了!

分享
微信
微博
QQ