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