I've installed the Mandrill PHP API on my Windows Apache server. When trying to send an email using the code below I get the error:
Mandrill_HttpError - API call to messages/send-template failed: SSL certificate problem: unable to get local issuer certificate
It's not clear to me how Mandrill connects to my local issuer certificate. My web server does have a valid certificate and can display HTTPS pages successfully.
Any ideas?
$mandrill = new Mandrill('MyMandrillAPIKey');
$message = array(
'subject' => 'Test message',
'from_email' => 'MyEmailAddress',
'html' => '<p>this is a test message with Mandrill\'s PHP wrapper!.</p>',
'to' => array(array('email' => 'MyEmailAddress', 'name' => 'David Splat')),
'merge_vars' => array(array(
'rcpt' => 'MyEmailAddress',
'vars' =>
array(
array(
'name' => 'FIRSTNAME',
'content' => $fName),
array(
'name' => 'LASTNAME',
'content' => $lName)
))));
$template_name = 'MyTemplateName';
$template_content = array(
array(
'name' => 'main',
'content' => 'Hi *|FIRSTNAME|* *|LASTNAME|*, thanks for signing up.'),
array(
'name' => 'footer',
'content' => 'Copyright 2014.')
);
print_r($mandrill->messages->sendTemplate($template_name, $template_content, $message));
} catch(Mandrill_Error $e) {
// Mandrill errors are thrown as exceptions
echo 'A mandrill error occurred: ' . get_class($e) . ' - ' . $e->getMessage();
throw $e;
}
You don't need to turn off curl SSL option, instead you can download the cacert.pem file from http://curl.haxx.se/docs/caextract.html and then include it in either php.ini file
curl.cainfo="/exact/location/to/cacert.pem"
or simply change the lines in Mandrill.php file to use it as below.
curl_setopt ($this->ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt ($this->ch, CURLOPT_CAINFO, __DIR__ . "/cacert.pem")
link to the post http://tutewall.com/ssl-certificate-problem-unable-to-get-local-issuer-certificate/