Mandrill-附件不发送附件

时间:2014-10-10 23:10:31

标签: mandrill

我试图通过Mandrill发送一个小rtf附件。我创建了以下json并使用API​​测试页面进行了尝试。附件是base 64编码的。 API报告没有错误,电子邮件通过,但没有附件。我做错了什么?

{
    "attachments": [
    {
        "type": "application/rtf",
        "name": "test.rtf",
        "content": "e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzIwNTd7XGZvbnR0Ymx7XGYwXGZuaWxcZmNoYXJzZXQwIENhbGlicmk7fX0NCntcKlxnZW5lcmF0b3IgTXNmdGVkaXQgNS40MS4yMS4yNTEwO31cdmlld2tpbmQ0XHVjMVxwYXJkXHNhMjAwXHNsMjc2XHNsbXVsdDFcbGFuZzlcZjBcZnMyMiB0aGlzIGlzIGEgdGVzdCBzZW5kaW5nIGZpbGVccGFyDQp9DQoA"
    }
],
"message": {
    "html": "<html>\r\n<body>test data</body>\r\n</html>\r\n",
    "subject": "Cloud Demo",
    "from_email": "jklovanc@hotmail.com",
    "preserve_recipients": true,
    "text": "",
    "to": [
        {
            "type": "to",
            "name": "",
            "email": "jklovanc@hotmail.com"
        }
    ],
    "from_name": "",
    "headers": {
        "reply-to": "jklovanc@hotmail.com"
    }
},
"key": #mykey#,
"async": false

}

2 个答案:

答案 0 :(得分:2)

附件是消息对象的一部分,因此附件参数应嵌套在消息下而不是同一级别。它看起来应该是这样的:

{
    "message": {
        "attachments": [
            {
                "type": "application/rtf",
                "name": "test.rtf",
                "content": "e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcZGVmbGFuZzIwNTd7XGZvbnR0Ymx7XGYwXGZuaWxcZmNoYXJzZXQwIENhbGlicmk7fX0NCntcKlxnZW5lcmF0b3IgTXNmdGVkaXQgNS40MS4yMS4yNTEwO31cdmlld2tpbmQ0XHVjMVxwYXJkXHNhMjAwXHNsMjc2XHNsbXVsdDFcbGFuZzlcZjBcZnMyMiB0aGlzIGlzIGEgdGVzdCBzZW5kaW5nIGZpbGVccGFyDQp9DQoA"
            }
        ],
        "html": "<html>\r\n<body>test data</body>\r\n</html>\r\n",

....

答案 1 :(得分:-1)

<?php
//It works for me! good luck

/*LIBS*/
include 'lib/mandrill-api-php/src/Mandrill.php';
$mandrill = new Mandrill('YOUR API KEY HERE');

/*ADMIN AND USER EMAIL*/
$admin_email = 'your_email@your_domain.com';
$client_email = 'the_email_of_the_client@mail.com';

/*attach PDF with base64_encode */
$attachment = file_get_contents('the_route_to_your_pdf'); // https://yourdomain/pdf_folder/mypdf.pdf
$attachment_encoded = base64_encode($attachment);

try{
    $user_message = array(
        'subject' => 'Your subject',
        'from_email' => $admin_email,
        'from_name' => 'my_domain_for_example',
        'html' =>  '<p>HTML template</p>',
        'to' => array(array('email' => $client_email, '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')
            ))),
        'attachments' => array(
            array(
                'content' => $attachment_encoded,
                'type' => "application/pdf",
                'name' => 'the_name_of_the_attach.pdf',
            ))
    );

    $res_user_mandrill = $mandrill->messages->send($user_message, $async=false, $ip_pool=null, $send_at=null);

} catch(Mandrill_Error $e) {

}

?>