Отправка байтового массива PDF / Docx в виде вложения электронной почты - PullRequest
0 голосов
/ 29 ноября 2018

DocuSign звонит в наш webhook после подписания документов.Эти документы затем сохраняются в базе данных.Они сохраняются в том виде, в каком они получены от DocuSign, в виде байтов PDF, которые кодируются в двоичном формате base64.Затем другой сервер вызывает этот сервер для получения документов.Затем я отправляю документы в виде приложения через нодмейлер.После открытия вложения он не рендерится / не декодирует должным образом.Он отображается в виде закодированных данных base64, а не читаемого текста.Может кто-то любезно указать, что я делаю не так?

Тело ответа выглядит следующим образом:

[ { Name: [ 'name-of-doc.docx' ], PDFBytes: [ 'JVBERi0xLjUKJfv8/f4KJVdy ... '] } ]

Вот код:

request(options, function (err, response) {

      var mailOptions = {
        from: 'email@domain.com',
        to: 'email@domain.com',
        subject: "Test",
        html: "This is a test. See attached.",
        attachments:[{
          filename: JSON.parse(response.body).pdfs[0].Name,
          content: JSON.parse(response.body).pdfs[0].PDFBytes[0],
          encoding: 'base64'
          // also have tried new Buffer(...PDFBytes[0], 'base64') in content
        }]
      };

      transporter.sendMail(mailOptions);

  });

1 Ответ

0 голосов
/ 06 декабря 2018

Похоже на возможную проблему двойного кодирования.

Я предлагаю вам декодировать pdf при его получении.Кодировка base64, используемая Connect, предназначена только для передачи pdf из системы Connect в ваше приложение.

Затем, при необходимости, закодируйте его еще раз для транспортировки по электронной почте.

Для электронной почты, почемуне отправить его в виде PDF-файла?(Против зашифрованного формата?)

Я предлагаю вам написать новый вопрос о переполнении стека: «Как мне отправить электронное письмо с вложением в pdf с использованием nodemailer»

(Теперь, когда я перечиталВаш вопрос, я полагаю, что вы пытаетесь сосредоточиться на проблемах с нодейлером. Тег docusignapi сбил меня с толку. Возможно, вы захотите удалить этот тег, поскольку ваш вопрос касается не DocuSign.)

...