当前位置:Gxlcms > PHP教程 > ping“smtp.gmail.com”可以通,为什么PHPMAILer却报错

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

时间:2021-07-01 10:21:17 帮助过:27人阅读

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
  1. <!--
  2. Code highlighting produced by Actipro CodeHighlighter (freeware)
  3. http://www.CodeHighlighter.com/
  4. -->
  5. <!--?php
  6. include("phpmailer/class.phpmailer.php");
  7. $mail = new PHPMailer();
  8. $body = "TEST_TEST";
  9. $mail--->IsSMTP();
  10. $mail->SMTPAuth = true; // enable SMTP authentication
  11. $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
  12. $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
  13. $mail->Port = 465; // set the SMTP port for the GMAIL server
  14. $mail->Username = "xxx@gmail.com"; // GMAIL username
  15. $mail->Password = "xxx"; // GMAIL password
  16. $mail->From = "xxx@gmail.com";
  17. $mail->FromName = "xxx";
  18. $mail->Subject = "subject 111";
  19. //$mail->Body = "Hi,<br>This is the HTML BODY<br>"; //HTML Body
  20. $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
  21. $mail->WordWrap = 50; // set word wrap
  22. $mail->MsgHTML($body);
  23. $mail->AddAddress("xxx@gmail.com", "xxx");
  24. $mail->IsHTML(true); // send as HTML
  25. if(!$mail->Send()) {
  26. echo "Mailer Error: " . $mail->ErrorInfo;
  27. } else {
  28. echo "Message sent!";
  29. }
  30. ?>


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

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

我在本地测试,用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 ……

人气教程排行