将PDF/Docx字节数组作为电子邮件附件发送



DocuSign在签署文档时调用我们的webhook。然后将这些文档存储在数据库中。它们在从DocuSign接收时被存储为PDF字节,这些字节以64位二进制编码。然后另一个服务器调用该服务器来检索文档。然后,我通过nodemailer将文档作为附件发送。打开附件后,它无法正确渲染/解码。它显示为编码的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);
});

听起来可能存在双重编码问题。

我建议您在收到pdf时对其进行解码。Connect使用的base64编码只是将pdf从连接系统传输到您的应用程序。

然后,如果需要,再次对其进行编码,以便通过电子邮件进行运输。

对于电子邮件,为什么不将其作为pdf附件发送?(与编码格式相比?(

我建议你写一个新的堆栈溢出问题"我如何使用nodemailer发送带有pdf附件的电子邮件">

(现在我重读了你的问题,我想你正试图专注于nodemailer问题。docusignapi标签让我绊倒了。你可能想删除那个标签,因为你的问题与DocuSign无关。(

最新更新