php教程|PHP源码
nbsp,quot,SMTP,fsockopen,pfsockopen
php教程-PHP源码
PHPMailer是一个邮件发送插件有很多朋友使用它来发邮件,但也有不少朋友在使用期PHPMailer发邮件时就碰到”SMTP 错误:无法连接到 SMTP 主机“错误了,出现这种问题我们从几个点来分享,一个是邮箱配置有问题,另一个是我们的php.ini环境中有些函数没开启导致的,下面我来给各位详细介绍一下问题的排除技巧。
ec(2);原因分析
ecshop旅游网站源码,vscode制作mod,ubuntu连接wifi,tomcat 配置项目,sqlite 插入语句,电商网页设计风格,租云数据库,在香港服务器多少钱,discuz电子商务插件3.2,serverless 前端框架,有道爬虫,php 与或非,seo大神,springboot如何写项目,织梦sql标签结合,特别炫的网站,网页发起qq临时会话,培训教育类网站模板,网站后台管理系统模板 html,页面滚动触发css3动画,教务管理系统,易语言取子程序名称lzw
出现这个问题说明无法解析 SMTP 主机 的名称。
域名买卖源码,vscode注释的颜色,不喜欢Ubuntu,tomcat负载过期时间,guzzle 爬虫,php 163 smtp,南昌seo优化网络报价,限量领取网站源码,wap开源后台模板lzw
解决办法,这个要看邮箱支付不支持pop3发送与接收邮件这个可以邮件官方看看,如QQ邮件
聚美优品整站源码,vscode h5插件,ubuntu文件加密,tomcat日志输出禁止,爬虫遇到附件,php5.2漏洞,seo技术教学课程推广产品,网站头部flash,dw调查表单模板lzw
phpmailer error SMTP Error: Could not connect to SMTP host Could not instantiate mail function
弄了半天,原来是不同邮件系统要求的smtp请求不同,但是都允许大写,有些不支持小写,比如网易,腾讯的邮箱。
原来的设置
$mail->SMTPAuth = true;
$mail->Mailer = “smtp”;
$mail->Host = “”;
$mail->Port = 25; //设置邮件服务器的端口,默认为25
$mail->Username = “8515888@”;
$mail->Password = “xxxxxxxxxx”;
把smtp改成大写就可以了
$mail->Mailer = “SMTP”;
分析问题2,
还有大家就是使用了空间而不是服务器这样有可能像fsockopen、pfsockopen都禁用了,因为phpmailer需要使用fsockopen、pfsockopen才可以发邮件所以就会有问题了。
解决办法
找到class.smtp.php文件,大约在文件的128行吧,有这样一段代码:
// 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函数
因为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);
这样就可以了。