我在使用PHPmailer發郵件時候,遇到了這個問題“SMTP Error: Could not connect to SMTP host.”,分享一下解決方法。
這個錯誤是PHP版本7產生的。如果我將PHP更改為5,它就可以工作了。
1.首先查看PHP環境擴展中是否開啟了socket 和openssl擴展,如若沒有開啟,就在php.ini配置文件中開啟兩者擴展支持
去掉下面的兩句分號:
;extension=php_sockets.dll ;extension=php_openssl.dll
2.在自己的郵件配置中加入下面幾行代碼:
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );
這意味着您的郵件服務器提供的證書與您要求的主機名稱不匹配。在你的代碼中,你要求連接到xxx,但服務器說它叫做yyy,並且一個證書與另一個不匹配。 請檢查您是否使用了正確的主機名。
如果您的ISP將出站SMTP流量重定向到他們自己的服務器,也會發生這種情況 - 這是您在沒有證書驗證的情況下無法檢測到的情況。
設置這些選項會使其“工作”,但是通過關閉證書驗證來實現這一點,這可能意味着您容易受到中間人攻擊,因此也是不安全的。