Простая функция php для отправки электронной почты с Mandrill

Самый простой способ отправить электронную почту через службу Mandrill Mailchimp (используя 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.

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

Solutions Collecting From Web of "Простая функция php для отправки электронной почты с Mandrill"

У нас также есть официальная оболочка 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' => 'you@yourdomain.com', 'html' => '<p>this is a test message with Mandrill\'s PHP wrapper!.</p>', 'to' => array(array('email' => 'recipient1@domain.com', 'name' => 'Recipient 1')), 'merge_vars' => array(array( 'rcpt' => 'recipient1@domain.com', '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)); ?> 

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": "someone@example.com", "from_name": "John", "to": [ { "email": "blah@example.com", "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; 
 // 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 = "address@test.com"; $message->from_name = "From Name"; $message->to = array(array("email" => "recipient@test.com")); $message->track_opens = true; $response = $mandrill->messages->send($message); 

Это самый простой фрагмент кода, который я могу вам дать, я просто делаю его несколько секунд назад для клиента, и он работает плавно.

 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

Включите 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