Подтвердить что ты не робот

Простая функция 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.

Может ли кто-нибудь помочь?

4b9b3361

Ответ 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