PHPMailer发送邮件”SMTP 错误:无法连接到 SMTP 主机“
发布:smiling 来源: PHP粉丝网 添加日期:2014-06-17 08:43:01 浏览: 评论:0
PHPMailer是一个邮件发送插件有很多朋友使用它来发邮件,但也有不少朋友在使用期PHPMailer发邮件时就碰到”SMTP 错误:无法连接到 SMTP 主机“错(www.phpfensi.com)误了,出现这种问题我们从几个点来分享,一个是邮箱配置有问题,另一个是我们的php.ini环境中有些函数没开启导致的,下面我来给各位详细介绍一下问题的排除技巧.
原因分析:出现这个问题说明无法解析 SMTP 主机 <主机 id> 的名称.
解决办法,这个要看邮箱支付不支持pop3发送与接收邮件这个可以邮件官方看看,如QQ邮件.
phpmailer error SMTP Error: Could not connect to SMTP host Could not instantiate mail function
弄了半天,原来是不同邮件系统要求的smtp请求不同,但是都允许大写,有些不支持小写,比如网易,腾讯的邮箱.
原来的设置:
- $mail->SMTPAuth = true;
- $mail->Mailer = "smtp";
- $mail->Host = "smtp.qq.com";
- $mail->Port = 25; //设置邮件服务器的端口,默认为25
- $mail->Username = "8515888@qq.com";
- $mail->Password = "xxxxxxxxxx";
把smtp改成大写就可以了:
$mail->Mailer = "SMTP";
分析问题:
还有大家就是使用了空间而不是服务器这样有可能像fsockopen、pfsockopen都禁用了,因为phpmailer需要使用fsockopen、pfsockopen才可以发邮件所以就会有问题了.
解决办法:找到class.smtp.php文件,大约在文件的128行吧,有这样一段代码:
- // connect to the smtp server
- $th(www.phpfensi.com)is->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函数
因为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);
这样就可以了.
Tags: SMTP 错误 无法连接SMTP 主机
- 上一篇:php版淘宝网查询商品接口代码
- 下一篇:php多进程几个例子
相关文章
- ·php socket 使用smtp服务器发送邮件(2014-01-22)
- ·PHPMailer配置ssl连接smtp服务器失败解决办法(2015-04-15)
- ·PHP实现SMTP邮件的发送实例(2021-10-30)
- ·php使用socket调用http和smtp协议实例小结(2021-12-07)
- ·利用PHP自定义错误处理器处理出错信息(2013-11-27)
- ·php curl常见错误:SSL错误、bool(false)(2013-11-30)
- ·新浪微博PHP版SDK的导致20007错误(2013-12-03)
- ·linux中phpMyAdmin错误提示Wrong permissions on configuration file, should no(2013-12-04)
- ·PHP异常处理、错误报告、日志(2014-01-16)
- ·PHP线上错误日志控制(error_reporting和display_errors) (2014-06-26)
- ·PHP错误处理方法总结(2014-08-28)
- ·phpExcel导出大量数据出现内存溢出错误解决办法(2014-09-10)
- ·PDO 中相关的错误处理(2014-09-11)
- ·php gerr 统一的错误处理 v0(2014-10-24)
- ·PHP实现抓取HTTPS内容的方法和错误处理(2016-08-22)
- ·PHP提示Class SoapClient not found错误怎么办(2018-10-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)