Mandrill - Вложения не отправляют вложение

Я пытаюсь отправить небольшое вложение в формате rtf через Mandrill. Я создал следующий 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": "[email protected]",
    "preserve_recipients": true,
    "text": "",
    "to": [
        {
            "type": "to",
            "name": "",
            "email": "[email protected]"
        }
    ],
    "from_name": "",
    "headers": {
        "reply-to": "[email protected]"
    }
},
"key": #mykey#,
"async": false

}


person Movak    schedule 10.10.2014    source источник


Ответы (2)


Вложения являются частью объекта сообщения, поэтому параметр вложений должен быть вложен в сообщение, а не на том же уровне. Вместо этого это должно выглядеть так:

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

....
person Kaitlin    schedule 12.10.2014
comment
Спасибо, вы правы. Было бы неплохо, если бы Мандрил отправил обратно ошибку, а не просто проигнорировал ее. - person Movak; 13.10.2014
comment
Мы определенно можем поискать дополнительную проверку, но, как правило, на самом деле это не ошибка — это неизвестный параметр, который мы проигнорируем. Для параметров, которые мы на самом деле поддерживаем, мы выполним хотя бы минимальную проверку, если вы не выполняете асинхронный вызов. - person Kaitlin; 17.10.2014
comment
Извините, но установка параметра в неправильном месте в json является ошибкой, так как не дает желаемого эффекта. Для меня каждый раз, когда система делает что-то ненормальное, например игнорирует параметр, об этом следует сообщать. - person Movak; 18.10.2014

person    schedule
comment
Может быть полезно, если вы укажете места, в которых ваше решение отличается. Обратите внимание, что вопрос не был связан с PHP, поэтому я бы не стал считать это технологией решения. - person Rafał Wrzeszcz; 19.06.2018