如何将 PDF 附加到从 Express 应用程序发送的电子邮件中

How to attach a PDF to an email sent from an express app

我正在尝试发送带有 PDF 附件的电子邮件,但 PDF 无法打开。 (如何从文件系统加载 PDF 并将其包含在从 Express 应用程序发送的电子邮件中?)

这就是我现在拥有的: 我像这样从文件系统加载 PDF:var pdfAttach = fs.readFileSync('./pdfs/test.pdf', 'binary'); 并将它包含在像这样发送给 Mandrill 的对象中:

{
...
attachments:
  [{content: pdfAttach,
    name: "testing.pdf",
    type: "application/pdf"
  }],
...
}

收件人收到一封电子邮件,其中包含他无法打开的 PDF 文件。关于如何解决这个问题的任何想法?

如果您查看 Mandrill 的消息 API here,您会发现附件的内容必须是 base64 编码的字符串。所以代码将是:

var pdfAttach = fs.readFileSync('./pdfs/test.pdf');
...
attachments:
  [{content: pdfAttach.toString('base64'),
    name: "testing.pdf",
    type: "application/pdf"
}],
...

希望对您有所帮助。