Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mandrill-附件不发送附件_Mandrill - Fatal编程技术网

Mandrill-附件不发送附件

Mandrill-附件不发送附件,mandrill,Mandrill,我正试图通过Mandrill发送一个小型rtf附件。我创建了以下json,并使用API测试页面进行了尝试。附件是base 64编码的。API没有报告任何错误,并且电子邮件已通过,但没有附件。我做错了什么 { "attachments": [ { "type": "application/rtf", "name": "test.rtf", "content": "e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVm

我正试图通过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
{
“附件”:[
{
“类型”:“应用程序/rtf”,
“名称”:“test.rtf”,
“内容”:“E1XYDGYXGFUC2LCYW5ZAWWWWWWZGEYNTJCZGVZGWZIWNTD7XGZVBNR0YMX7GYWXGZUWZMNOYXZZZZQWIENHBGLICMK7FX0NCNTCKLXNZW5LCMF0B3IGTXNMDGVKAQGNS40MS4YMS4YNTEWO31CDMLLD2TPMQ0xHVWYWYKJKHNHMJAWKHNSMJC2XHNSXHNSXHNSBVSDDFCB7FXFZFZFZFZYLCZYDCB5YDGL9A”
}
],
“信息”:{
“html”:“\r\n测试数据\r\n\r\n”,
“主题”:“云演示”,
“从您的电子邮件”:jklovanc@hotmail.com",
“保存收件人”:正确,
“文本”:“,
“致”:[
{
“类型”:“至”,
“名称”:“,
“电子邮件”:jklovanc@hotmail.com"
}
],
“发件人姓名”:“,
“标题”:{
“答复”:jklovanc@hotmail.com"
}
},
“钥匙”:“我的钥匙”,
“异步”:false

}

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

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

....
{
“信息”:{
“附件”:[
{
“类型”:“应用程序/rtf”,
“名称”:“test.rtf”,
“内容”:“E1XYDGYXGFUC2LCYW5ZAWWWWWWZGEYNTJCZGVZGWZIWNTD7XGZVBNR0YMX7GYWXGZUWZMNOYXZZZZQWIENHBGLICMK7FX0NCNTCKLXNZW5LCMF0B3IGTXNMDGVKAQGNS40MS4YMS4YNTEWO31CDMLLD2TPMQ0xHVWYWYKJKHNHMJAWKHNSMJC2XHNSXHNSXHNSBVSDDFCB7FXFZFZFZFZYLCZYDCB5YDGL9A”
}
],
“html”:“\r\n测试数据\r\n\r\n”,
....


谢谢,你是对的。如果Mandrill发回并出错,而不仅仅是忽略它,那就太好了。我们当然可以查看更多的验证,但它通常不是一个错误,而是一个未知的参数,我们将忽略它。对于我们实际支持的参数,我们将在不异步的情况下至少进行最小的验证调用。很抱歉,但在json中将参数放在错误的位置是一个错误,因为它不会产生预期的效果。对我来说,每次系统执行异常操作(如忽略参数)时,都应该报告。如果您指出解决方案不同的位置,可能会很有用。请注意,该问题与PHP无关,所以我不认为这是一种解决方案技术。
<?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) {

}

?>