当前位置: 代码迷 >> PHP >> ping“smtp.gmail.com”可以通,为什么PHPMAILer却报错
  详细解决方案

ping“smtp.gmail.com”可以通,为什么PHPMAILer却报错

热度:1378   发布时间:2012-09-09 09:27:54.0
ping“smtp.gmail.com”可以通,为啥PHPMAILer却报错
在CMD里ping一下GMAIL的SMTP服务器可以通,

可是在网页里面做的发送email的程序,却总是报错:
SMTP Error: Could not connect to SMTP host. Mailer Error: SMTP Error: Could not connect to SMTP host.


咋回事呢:

PHP code

<?php
 
include("phpmailer/class.phpmailer.php"); 
$mail             = new PHPMailer(); 
$body             = "TEST_TEST"; 
 
$mail->IsSMTP(); 
$mail->SMTPAuth   = true;                  // enable SMTP authentication 
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier 
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server 
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server 
 
$mail->Username   = "xxx@gmail.com";  // GMAIL username 
$mail->Password   = "xxx";            // GMAIL password 
 
 
$mail->From       = "xxx@gmail.com"; 
$mail->FromName   = "xxx"; 
 
$mail->Subject    = "subject 111"; 
 
//$mail->Body       = "Hi,<br>This is the HTML BODY<br>";                      //HTML Body 
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 
$mail->WordWrap   = 50; // set word wrap 
 
$mail->MsgHTML($body); 
 
$mail->AddAddress("xxx@gmail.com", "xxx"); 
 
$mail->IsHTML(true); // send as HTML 
 
if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 
     
?>



------解决方案--------------------
探讨

会不会是空间商做了限制呢?

我在本地测试,用163的邮箱可以发邮件;用GMAIL的也是显示这个错误,开启PHPMAILER的调试模式显示:
SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you ……
  相关解决方案