2014-10-01 46 views
5

我正在嘗試Mandrill。看起來很好。我註冊了一個帳戶並獲得了api密鑰。下載從 https://bitbucket.org/mailchimp/mandrill-api-phpMandrill CA使用cURL的SSL錯誤

的山魈PHP包裝這篇文章似乎有一個很好的招呼世界山魈電子郵件例子,所以我嘗試過了:

Simple php function to send an email with Mandrill

不斷收到此錯誤:

API call to templates/add failed: Problem with the SSL CA cert (path? access rights?) 

我按照這些SO的指示帖子:

error in send email using Mandrill (php) HTTPS and SSL3_GET_SERVER_CERTIFICATE:certificate verify failed, CA is OK

http://curl.haxx.se/docs/caextract.html

抓起.pem文件,並確保該捲曲API指出,山魈API

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE); 
curl_setopt ($ch, CURLOPT_CAINFO, "pathto/cacert.pem"); 

.pem文件內部的文件是可讀的。沒有瘋狂的權限情況。

沒有幫助。同樣的協議:

API call to templates/add failed: Problem with the SSL CA cert (path? access rights?) 

我身邊跟着谷歌搜索CentOS的6.0的步驟在這裏: http://kb.kerio.com/product/kerio-connect/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html

除了這裏的步驟: http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

同樣的錯誤。作爲最後一次嘗試,我將curl設置爲完全忽略ssl步驟。這當然不建議,但我只是想在我的腳下感受到堅實的基礎。我回到Mandrill.php並給了這個鏡頭。

curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0); 

同樣的錯誤。我想知道是否有其他人可以爲我解釋這一點。我用盡了谷歌。 (它給了我一個recaptcha,因爲我用得太多)。謝謝你的時間!

(系統:CentOS的6.5,PHP 5.3),你有在Linux上這個問題(已知的問題在Windows雖然)

回答

0

奇。

我可以想到的唯一的事情是,您嘗試通過php.ini文件加載.pem作爲默認值,檢查curl.cainfo並提供cacert.pem-文件的絕對路徑。這應該使你不必使用CURLOPT_CAINFO - 也許會有更好的結果?

偏離主題;如果你不需要API提供的所有功能,你也可以使用SMTP連接(總是更容易處理)。