很多朋友在利用phpmailer透過gmail發送mail時,常發生無法寄送的錯誤,而其中最常見的就是php沒有支援openssl的關係,有鑑於此YOGO特別寫了這篇就學,希望能對這方面有困擾的朋友能有所幫助,至於phpmailer的設定方式,就請參考YOGO寫的另一篇文章("用PHP寄MAIL的方法 "),在此就不再贅述了。
1.首先需先確認你安裝的PHP延伸模組中是否有php_openssl.dll這個函式庫,以YOGO的安裝路徑為例,到"C:\php5\ext\"這個資料夾中看是否有php_openssl.dll這個函式庫的存在,若有但openssl無法使用那就可能沒開啟這個擴充模組,以YOGO的設定為例,到"C:\WINDOS\"資料夾底下找到一個名php.ini的檔案,用筆記本之類的軟體開啟後,搜尋php_openssl.dll,找到之後將前方的";"字號去除之後存檔重開web server之後,應該就可以使用php_openssl.dll這個模組了,若在php.ini檔中,搜尋不到php_openssl.dll的話就把"extension=php_openssl.dll"這一段家到php.ini檔中,然後存檔重開web server之後,應該就可以使用php_openssl.dll這個模組了。
2.若安裝的PHP延伸模組中沒有php_openssl.dll這個函式庫的話就要自己去下載來裝了,首先先用phpinfo()函式,看一下安裝的php版本與php.ini檔的存放路徑,如下圖。
3.確定安裝的php版本後到php的官網(http://www.php.net/)中下載相對應的php版本,不管你的php是幾版的,你要下載的是PHP_X.X.X._zip_package的版本,不要去下載其他的版本,如下圖。
6.進入"ext"資料夾中找到"php_openssl.dll"這個擴充模組,如下圖。
7.將"php_openssl.dll"複製到你的php安裝路徑之下的"ext"資料夾,以YOGO為例,安裝路徑為"C:\php5\ext\",如下圖。
PS:
1. The directory from which the application loaded.
2. The windows\system32 directory.
3. The windows\system directory.
4. The windows directory.
5. The current directory.
6. The directories that are listed in the PATH environment variable.
3.php 的版本建議使用 php5,不要使用 php4,因為PHP 4.3.x 版本有 bug 會導致 fsockopen 無法接受 "ssl://example.com",即使有 OpenSSL support,還是會產生以下這樣的錯誤訊息:
Warning: fsockopen(): no SSL support in this build
以上的設定都沒問題的後就能用phpmailer透過gmail來代送mail,以上若有任何問題歡迎各位朋友提出來一起討論,祝好運囉^^