Как прикрепить файл csv к электронной почте с помощью Mandrill?

У меня есть строка csv, которую я пытаюсь отправить в виде вложения в электронном письме, но содержимое выглядит как тарабарщина. Это скрипт узла. Любые идеи?

                 // csv is a csv string

                 var message = {
                    "html": msg,
                    "subject": 'Test CSV Attachment',
                    "from_email": from,
                    "from_name": "Tester",
                    "to": [{
                            "email": email
                            }],
                    "headers": {
                        "Reply-To": email
                    },
                    "attachments": [{
                        "type": 'text/csv',
                        "name": filename,
                        "content": csv
                    }],
                  };

                    mandrill_client.messages.send({"message": message}, function(result) {
                    console.log('result NOTIFICATION! ', result);
                  });

person user3527354    schedule 25.02.2017    source источник


Ответы (1)


Согласно документации Mnadrill API, вам необходимо кодировать содержимое в base64. :

введите здесь описание изображения

Итак, измените следующее...

"content": csv

...to:

"content": Buffer.from(csv).toString('base64')
person Nehal J Wani    schedule 25.02.2017
comment
работал! ранее я пробовал csv.toString('base64') и это не удалось. Можете ли вы объяснить, чем это отличается от того, что вы сделали? - person user3527354; 26.02.2017
comment
@user3527354 cloud.githubusercontent.com/assets/ 1779189/23337067/ Я думаю, что разница между вызовами Object.prototype.toString() и buffer.toString() . Первый не принимает никаких аргументов, и даже если вы укажете какой-либо мусор, кроме «base64», он не будет жаловаться. Но последний принимает не более трех аргументов: кодирование, начало и конец. - person Nehal J Wani; 26.02.2017