php专区

 首页 > php专区 > PHP应用 > 常用功能 > PHPMailer发送邮件”SMTP 错误:无法连接到 SMTP 主机

PHPMailer发送邮件”SMTP 错误:无法连接到 SMTP 主机

分享到:
【字体:
导读:
          PHPMailer是一个邮件发送插件有很多朋友使用它来发邮件,但也有不少朋友在使用期PHPMailer发邮件时就碰到SMTP 错误:无法连接到 SMTP 主机错(www phpfensi com)误了,出现这种问题我们从几个点来分...

PHPMailer发送邮件”SMTP 错误:无法连接到 SMTP 主机“

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请求不同,但是都允许大写,有些不支持小写,比如网易,腾讯的邮箱.

原来的设置:

  1. $mail->SMTPAuth = true; 
  2. $mail->Mailer   = "smtp"
  3. $mail->Host = "smtp.qq.com"
  4. $mail->Port = 25; //设置邮件服务器的端口,默认为25 
  5. $mail->Username = "8515888@qq.com"
  6. $mail->Password = "xxxxxxxxxx"

把smtp改成大写就可以了:

$mail->Mailer   = "SMTP";

分析问题:

还有大家就是使用了空间而不是服务器这样有可能像fsockopen、pfsockopen都禁用了,因为phpmailer需要使用fsockopen、pfsockopen才可以发邮件所以就会有问题了.

解决办法:找到class.smtp.php文件,大约在文件的128行吧,有这样一段代码:

  1. // connect to the smtp server 
  2.     $th(www.phpfensi.com)is->smtp_conn = @fsockopen($host,    // the host of the server 
  3.  $port,    // the port to use 
  4.  $errno,   // error number if any 
  5.  $errstr,  // error message if any 
  6.  $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有所不同,所以代码要修改为:

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

这样就可以了.

分享到:
php多进程几个例子 - php高级应用
php多进程几个例子 php多进程这个东西先是在java中有不过现在高版本的php也支持多进程这个功能,但经过测试性能不如j(www.phpfensi.com)ava了希望后期有所提高了,下面我们一起来看看我整理了几个关于php多进程例子,希望能帮助你理解多线程. php多进程的实现依赖于pcntl扩展,编译PHP的时候,可...
php版淘宝网查询商品接口代码 - php高级...
php版淘宝网查询商品接口代码 下面来给大家介绍一个php版淘宝网查询商品接口代码的例子,下面要(www.phpfensi.com)改成你的信息的在代码后面都有说明了,同时sdk包我们也要官方下载. 其实我也没做什么只是把标准事例改了下,请下载SDK包解压后与该文件放在同一目录下,代码如下:  
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……