2014-10-01 27 views
5

Próbuję Mandrill. To wygląda ładnie. Zarejestrowałem się z kontem i otrzymałem klucz API. Pobrano opakowanie Mandrill PHP z https://bitbucket.org/mailchimp/mandrill-api-phpMandrill CA SSL błędy z cURL

Ten post wydawał się mieć całkiem dobry hello-world Mandrill przykład e-mail, więc próbowałem go:

Simple php function to send an email with Mandrill

stawała się ten błąd:

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

Postępowałem zgodnie z instrukcjami otrzymanymi od SO Wiadomości:

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

Chwycił plik .pem z http://curl.haxx.se/docs/caextract.html

i wykonane, czy curl api wskazał do tego pliku wewnątrz API Mandrill

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

plików .pem jest czytelny. Żadnych szalonych pozwoleń.

Brak pomocy. Sama sprawa:

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

Googling wokół I po CentOS 6.0 kroki tutaj: http://kb.kerio.com/product/kerio-connect/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html

także jak tutaj etapy: http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

sam błąd. Jako ostatnią próbę ustawiłem curl, aby całkowicie zignorować krok ssl. To oczywiście nie jest zalecane, ale po prostu chciałem poczuć solidny grunt pod nogami. Wróciłem do Mandrill.php i zrobiłem to.

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

Znów ten sam błąd. Zastanawiałem się, czy ktoś inny może mi o tym powiedzieć. Wyczerpałem google. (To dało mi recaptcha, ponieważ używałem go za dużo). Dziękuję za Twój czas!

(System: CentOS 6.5, PHP 5.3)

Odpowiedz

0

Dziwne, że masz ten problem w systemie Linux (znany problem w systemie Windows chociaż).

Jedyne kan myślę o to, aby spróbować załadować się .pem jako domyślny pośrednictwem php.ini pliku, sprawdzić curl.cainfo i dostarczamy bezwzględną ścieżkę do cacert.pem -file. To powinno sprawić, że nie będziesz musiał używać CURLOPT_CAINFO - i może daje lepszy rezultat?

Pół-temat; jeśli nie potrzebujesz wszystkich funkcji, które oferuje interfejs API, możesz także użyć połączenia SMTP (zawsze łatwiejszego w obsłudze).

Powiązane problemy