phpmailer发送邮件 SMTP Error: Could not authenticate 错误
发布:smiling 来源: PHP粉丝网 添加日期:2014-02-05 20:46:13 浏览: 评论:0
今天在使用phpmailer发送邮件时居然提示SMTP Error: Could not authenticate,这个感觉是smtp设置的问题,下面我在网上找到了几种解决办法。
今天在使用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);
这样就可以了,如果上面办法还是没有解决可能是邮箱自动过滤你机器自动登录邮箱发邮件了哦,我是使用下面办法解决的,刚开始使用的qq的帐号,提示上面错误。换成新注册的163帐号可以正常发送。之后换了一个qq等级比较高的帐号,这下可以正常发送,没有报任何错误。因为收件人用的是qq邮箱帐号,所以发件帐号用qq的邮箱比较好,这样发送过多不会轻易的被拦截或判为垃圾邮件。所以结论就是配置中使用一个qq等级比较高的帐号(我的一个小号等级2个月亮可以正常使用,当然等级越高越好,)
结论:也要查看邮箱中“设置邮件地址黑名单”及“收信规则”,有时系统会自动将一些邮箱自动加入黑名单的
Tags: phpmailer 发送邮件 SMTP
相关文章
- ·利用phpmailer 发送邮件代码[发送html内容](2014-01-20)
- ·PHPMailer 发送邮件实例程序(2014-01-25)
- ·PHPMailer发送邮件中文附件名是乱码(2014-01-25)
- ·使用PHPMailer发送邮件实例代码总结(2014-01-25)
- ·PHPMailer发送邮件报错Msg:stream_socket_enable_crypto():(2014-02-05)
- ·php中利用PHPMailer插件实现gmail发送邮件(2014-02-05)
- ·PHPMailer使用Gmail来发送邮件的连接smtp服务器错误(2014-02-05)
- ·PHPMailer在SAE上无法发送邮件的解决方法(2014-09-20)
- ·利用PHPMailer来完成PHP的邮件发送(2015-12-10)
- ·汇总PHPmailer群发Gmail的常见问题(2019-12-04)
- ·PHPMailer的主要功能特点和简单使用说明(2020-09-15)
- ·PHPMailer发送HTML内容、带附件的邮件实例(2021-03-07)
- ·phpmailer在服务器上不能正常发送邮件的解决办法(2021-03-14)
- ·phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法(2021-03-22)
- ·使用PHPMailer实现邮件发送代码分享(2021-04-17)
- ·PHP借助phpmailer发送邮件(2021-05-26)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)