28

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

しかし、Mandrillを介して送信および電子メールを送信するPHP関数を作成する方法がわかりません。

誰か助けてもらえますか?

4

5 に答える 5

66

PHP用の公式APIラッパーもあります。これは、BitbucketまたはPackagistを介して利用でき、MandrillAPIをラップします。

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' => '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));

?>
于 2013-01-23T17:57:07.633 に答える
22

MandrillはPOST、すべてのAPIメソッドに対してHTTPリクエストを受け取り、入力をJSON文字列として受け取ります。メールを送信する基本的な例を次に示します。HTTPリクエストを実行するために使用cURLします。

$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;
于 2013-01-23T07:45:41.393 に答える
10
// 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);
于 2015-12-17T18:01:32.257 に答える
3

これは私があなたに与えることができる最も基本的なコードです。私は数秒前にクライアントのためにそれを作り上げました、そしてそれはスムーズに働いています。

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;
}

また、ヘッダー、メタデータ、添付ファイルなどのその他のオプションについては、sendメソッドを確認してください。https://mandrillapp.com/api/docs/messages.php.html#method-send

于 2016-01-12T17:20:42.560 に答える
2

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

于 2013-07-20T17:40:38.063 に答える