2014-10-10 72 views
0

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

{ 
    "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": "[email protected]", 
    "preserve_recipients": true, 
    "text": "", 
    "to": [ 
     { 
      "type": "to", 
      "name": "", 
      "email": "[email protected]" 
     } 
    ], 
    "from_name": "", 
    "headers": { 
     "reply-to": "[email protected]" 
    } 
}, 
"key": #mykey#, 
"async": false 

}

回答

2

附件是消息对象的一部分,所以所述附件参数应消息下,而不是在相同的水平嵌套。它应该看起来像这样:

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

.... 
+0

谢谢,你是对的。如果Mandrill发回错误而不是忽略它,那将会很好。 – Movak 2014-10-13 15:26:51

+0

我们可以肯定地看着更多的验证,但它通常不是一个错误 - 它是一个未知的参数,我们将忽略它。对于我们实际支持的参数,当您不调用呼叫时,我们至少会进行最小限度的验证。 – Kaitlin 2014-10-17 15:07:25

+0

抱歉,将参数放在json的错误位置是一个错误,因为它不会产生所需的效果。对我而言,每当系统发生异常时,如忽略参数,都应该报告。 – Movak 2014-10-18 18:38:27