MailchimpのMandrillサービス(APIを使用)を介して電子メールを送信する最も簡単な方法は何ですか。
Sendメソッドは次のとおりです。 https://mandrillapp.com/api/docs/messages.html#method=send
APIラッパーは次のとおりです。 https://bitbucket.org/mailchimp/mandrill-api-php/src/fe07e22a703314a51f1ab0804018ed32286a9504/src?at=master
しかし、マンドリルを介して送信および電子メールで送信するPHP関数を作成する方法がわかりません。
誰でも助けることができますか?
また、PHP用の公式APIラッパーもあります。これは、 Bitbucketで または Packagist で利用できます。これはMandrill APIをラップします。
Mandrill APIキーが環境変数として保存されている場合、テンプレートといくつかのマージ変数とメタデータを使用して送信する簡単な例を次に示します。
<?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\'s 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));
?>
Mandrillは、すべてのAPIメソッドのHTTP POST
リクエストを受け取り、入力を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;
// 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);
これは私があなたに与えることができる最も基本的なコードです。数秒前にクライアント用に作成しましたが、スムーズに動作しています。
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
ラッパークラスまたはComposerを含めるためにZFのオートローディングを使用できます。 https://mandrillapp.com/api/docs/index.php.html