Простая функция php для отправки электронной почты с Mandrill
Каков самый простой способ отправить электронное письмо через службу Mailchimp Mandrill (используя API).
Здесь метод отправки: https://mandrillapp.com/api/docs/messages.html#method=send
Здесь обертка API: https://bitbucket.org/mailchimp/mandrill-api-php/src/fe07e22a703314a51f1ab0804018ed32286a9504/src?at=master
Но я не могу понять, как создать функцию PHP, которая будет отправлять и отправлять по электронной почте через Mandrill.
Может ли кто-нибудь помочь?
Ответы
Ответ 1
У нас также есть официальная оболочка API для PHP, которая доступна на Bitbucket или через Packagist, который обертывает API Mandrill для вас.
Если ваш ключ API Mandrill хранится как переменная среды, вот простой пример отправки с использованием шаблона с некоторыми переменными слияния и метаданными:
<?php
require 'Mandrill.php';
$mandrill = new Mandrill();
// If are not using environment variables to specific your API key, use:
// $mandrill = new Mandrill("YOUR_API_KEY")
$message = array(
'subject' => 'Test message',
'from_email' => '[email protected]',
'html' => '<p>this is a test message with Mandrill\ PHP wrapper!.</p>',
'to' => array(array('email' => '[email protected]', 'name' => 'Recipient 1')),
'merge_vars' => array(array(
'rcpt' => '[email protected]',
'vars' =>
array(
array(
'name' => 'FIRSTNAME',
'content' => 'Recipient 1 first name'),
array(
'name' => 'LASTNAME',
'content' => 'Last name')
))));
$template_name = 'Stationary';
$template_content = array(
array(
'name' => 'main',
'content' => 'Hi *|FIRSTNAME|* *|LASTNAME|*, thanks for signing up.'),
array(
'name' => 'footer',
'content' => 'Copyright 2012.')
);
print_r($mandrill->messages->sendTemplate($template_name, $template_content, $message));
?>
Ответ 2
Mandrill принимает HTTP POST
запросы для всех своих методов API, и они берут ваш ввод как строку JSON. Вот базовый пример отправки электронной почты. Он использует cURL
для выполнения запроса HTTP:
$uri = 'https://mandrillapp.com/api/1.0/messages/send.json';
$postString = '{
"key": "YOUR KEY HERE",
"message": {
"html": "this is the emails html content",
"text": "this is the emails text content",
"subject": "this is the subject",
"from_email": "[email protected]",
"from_name": "John",
"to": [
{
"email": "[email protected]",
"name": "Bob"
}
],
"headers": {
},
"track_opens": true,
"track_clicks": true,
"auto_text": true,
"url_strip_qs": true,
"preserve_recipients": true,
"merge": true,
"global_merge_vars": [
],
"merge_vars": [
],
"tags": [
],
"google_analytics_domains": [
],
"google_analytics_campaign": "...",
"metadata": [
],
"recipient_metadata": [
],
"attachments": [
]
},
"async": false
}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uri);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
$result = curl_exec($ch);
echo $result;
Ответ 3
// Simply Send Email Via Mandrill...
require_once 'Mandrill.php';
$mandrill = new Mandrill($apikey);
$message = new stdClass();
$message->html = "html message";
$message->text = "text body";
$message->subject = "email subject";
$message->from_email = "[email protected]";
$message->from_name = "From Name";
$message->to = array(array("email" => "[email protected]"));
$message->track_opens = true;
$response = $mandrill->messages->send($message);
Ответ 4
Это самый простой кусок кода, который я мог бы вам дать, я просто делаю его несколько секунд назад для клиента, и он работает плавно.
require_once 'path/to/your/mandrill/file/Mandrill.php';
try {
$mandrill = new Mandrill('your-API-key');
$message = array(
'html' => $htmlMessage,
'subject' => $subject,
'from_email' => $fromEmail,
'from_name' => $fromName,
'to' => array(
array(
'email' => $toEmail,
'name' => $toName,
'type' => 'to'
)
)
);
$result = $mandrill->messages->send($message);
print_r($result);
} catch(Mandrill_Error $e) {
echo 'A mandrill error occurred: ' . get_class($e) . ' - ' . $e->getMessage();
throw $e;
}
Также проверьте их метод отправки для получения дополнительных параметров, таких как заголовки, метаданные, вложения и т.д. https://mandrillapp.com/api/docs/messages.php.html#method-send
Ответ 5
Включить PHP API: https://bitbucket.org/mailchimp/mandrill-api-php
Код: https://mandrillapp.com/api/docs/messages.php.html#method-send
Вы можете использовать автозагрузку ZF для включения класса-оболочки или Composer: https://mandrillapp.com/api/docs/index.php.html