使用郵件子產品PHPMailer時,由于使用了ssl驗證,是以需要在開啟php.ini配置檔案中開啟openssl.dll
;extension=php_openssl.dll ;這是php7的配置檔案
#extension=php_openssl.dll #這是php5的配置檔案
去掉行首的“;”或者“#”,改為:
extension=php_openssl.dll
But...問題來了,這是在php7上引入的子產品,修改了配置檔案儲存,重新開機Apache服務後,引用PHPMailer子產品的代碼仍然報錯:
Extension missing: openssl
在代碼中使用echo檢視ssl庫的加載情況,顯示“未加載ssl”:
echo (extension_loaded('openssl')?'SSL loaded':'SSL not loaded');
在此聲明一下軟體環境:Win10、Apache2.4、PHP7.0
搜尋解決方案,未果。
就換了一個版本,在PHP5上重新引入,試了一下,竟然“郵件發送成功”。What!!!
查了一下為什麼php7在win10下不能成功加載ssl的問題,找到了這篇文章:
https://blog.csdn.net/mrzhouxiaofei/article/details/66974625
在此感謝這位部落客!引用一下這篇文章裡的重點:
看到一篇文章寫到php5更新到php7時需要注意的一些問題,其中有這麼一條:
重新開機Apache時,報curl和openssl的擴充庫加載失敗(apache的log會報錯),
可将libeay32.dll和ssleay32.dll檔案複制并替換到apache\bin目錄下,再次啟動Apache
————————————————
版權聲明:本文為CSDN部落客「潛心做事GG」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/mrzhouxiaofei/article/details/66974625
總結:
1、在php5上可以直接引入子產品PHPMailer,開啟openssl,可以正常使用郵件功能。
2、在php7(win10)上,可嘗試将libeay32.dll和ssleay32.dll檔案複制并替換到apache\bin目錄下,開啟openssl,再次啟動Apache。
附文:
部落客測試過的php7版本資訊:
PHP 7.0.32 (cli) (built: Sep 12 2018 15:54:08) ( ZTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans
部落客測試過的php5版本資訊:
PHP 5.5.33 (cli) (built: Mar 2 2016 15:20:49)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies