附加到来自Node.js的电子邮件时,如何编码PDF文件?

问题描述

我需要知道如何将PDF的内容作为附件发送到电子邮件中。我从代表PDF文件内容的字符串开始:

'%PDF-1.4\n' +
    '1 0 obj\n' +
    '<<\n' +
    '/Title (��)\n' +
    '/Creator (��)\n' +
    '/Producer (��\x00Q\x00t\x00 \x004\x00.\x008\x00.\x006)\n' +
    '/CreationDate (D:20201109233748Z)\n' +
    '>>\n' +
    'endobj\n' +
    ...
    ...
    ...

在我的Node.js后端中,我可以像这样将其转换为Buffer:

return Buffer.from(response.data);

...其中response.data保存上面的字符串。

然后将此缓冲区附加到电子邮件中,如下所示:

        const attachments = [
            {
                filename: "Letter of Intent.pdf",content: buffer,contentType: "application/pdf"
            }
        ];

我们正在使用nodemailer发送电子邮件,并且此附件数组包含在传递给transporter.sendMail(...)的options对象中。

问题在于,收件人收到一个空白文件(即他们打开该文件并看到空白页)。

我猜想这与文件的编码有关。如您所见,我将contentType设置为“ application / pdf”。我应该使用其他编码吗?内容应该不是转换为缓冲区的文件内容以外的内容吗?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)