资讯专栏INFORMATION COLUMN

phpmailer发送邮件 SMTP Error: Could not authenticate 错

jiekechoo / 3147人阅读

摘要:今天在使用发送邮件时提示错误,其中密码帐号都是正确的,邮箱也设置开启了功能。方法使用函数一般被禁,也有可能被禁,所以这里介绍另一个函数。的参数与有所不同,所以代码要修改为代码如下复制代码这样就可以了。

今天在使用phpmailer发送smtp邮件时提示 SMTP Error: Could not authenticate 错误,其中密码帐号都是正确的,邮箱也设置开启了SMTP功能。

上谷歌百度了一遍,有的说是服务器禁用了端口,有的说把class.phpmailer.php中的

代码如下 复制代码

function IsSMTP() {
$this->Mailer = "smtp";
}改为

function IsSMTP() {
$this->Mailer = "SMTP";
}

(我的问题通过以上修改解决)
如果解决不了还有一些解决方法可供参考:
这个错误说明虚拟主机不支持PHPMailer默认调用的fsockopen函数,找到class.smtp.php文件,搜索fsockopen,就找到了这样一段代码:

代码如下 复制代码

// connect to the smtp server
$this->smtp_conn = @fsockopen($host,// the host of the server
    $port,// the port to use
    $errno,   // error number if any
    $errstr,  // error message if any
    $tval);   // give up after ? secs

方法1:将fsockopen函数替换成pfsockopen函数

首先,在php.ini中去掉下面的两个分号

;extension=php_sockets.dll
;extension=php_openssl.dll

然后重启一下

因为pfsockopen的参数与fsockopen基本一致,所以只需要将@fsockopen替换成@pfsockopen就可以了。

方法2:使用stream_socket_client函数

一般fsockopen()被禁,pfsockopen也有可能被禁,所以这里介绍另一个函数stream_socket_client()。

stream_socket_client的参数与fsockopen有所不同,所以代码要修改为:

代码如下 复制代码

$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno,  $errstr,  $tval);

这样就可以了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21298.html

相关文章

  • 利用PHP实现常用的数据结构之队列(小白系列文章三)

    摘要:队列算法名词解释在计算机编程语言中用来为复杂的声明定义简单的别名例如,你不用像下面这样重复定义有个字符元素的数组只需这样定义,类型即代表了具有个元素的字符数组,使用方法如下中译为结构,其实就是定义抽象数据类型例这个就是一个由班级姓名年龄 /** * PHP队列算法 * Created on 2017-4-25 * Author entner * Emai...

    SimonMa 评论0 收藏0
  • 利用PHP实现常用的数据结构之队列(小白系列文章三)

    摘要:队列算法名词解释在计算机编程语言中用来为复杂的声明定义简单的别名例如,你不用像下面这样重复定义有个字符元素的数组只需这样定义,类型即代表了具有个元素的字符数组,使用方法如下中译为结构,其实就是定义抽象数据类型例这个就是一个由班级姓名年龄 /** * PHP队列算法 * Created on 2017-4-25 * Author entner * Emai...

    Tony 评论0 收藏0
  • tp3.2使用QQ邮箱或163邮箱通过PHPMailer发送邮件

    摘要:我之前一直使用邮箱发送需要处理的文件,但是如果操作过于频繁或者有别的问题,会导致发送失败,相反现在用的貌似还没出现过类似情况,不过邮箱配置和有一丢丢不一样,我还是贴一下,怕朋友们踩到坑建议大家用邮箱,建议大家用邮箱,建议大家用邮箱重要的事情 我之前一直使用163邮箱发送需要处理的文件,但是如果操作过于频繁【或者有别的问题】,会导致发送失败,相反现在用QQ的貌似还没出现过类似情况,不过Q...

    Harpsichord1207 评论0 收藏0
  • JavaMail邮件发送不成功的那些坑人情况及分析说明

    摘要:网上也有不少人反馈用手机客户端无法使用新浪邮箱发送邮件,随后我尝试用登录新浪邮箱,也出现只能接收邮件而不能发送邮件的情况。三附录错误码及建议解决方法发送邮件成功却收不到邮件或收到邮件无主题无收件人乱码新浪邮箱诚信平台 前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有详细的中文注解。但是由于JavaMail的机制设置不够完善,特别是异常出错时的参考信息太少,给...

    y1chuan 评论0 收藏0
  • 初探smtp协议

    摘要:初探协议百度百科即简单邮件传输协议它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。协议属于协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。服务器则是遵循协议的发送邮件服务器,用来发送或中转发出的电子邮件。 初探smtp协议 百度百科 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地...

    phpmatt 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<