Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将PDF附加到从express应用发送的电子邮件_Node.js_Email_Express_Pdf_Mandrill - Fatal编程技术网

Node.js 如何将PDF附加到从express应用发送的电子邮件

Node.js 如何将PDF附加到从express应用发送的电子邮件,node.js,email,express,pdf,mandrill,Node.js,Email,Express,Pdf,Mandrill,我正在尝试发送带有PDF附件的电子邮件,但无法打开PDF。(如何从文件系统加载PDF并将其包含在从express app发送的电子邮件中?) 这就是我现在拥有的:我像这样从文件系统加载PDF:var-pdfAttach=fs.readFileSync('./pdfs/test.PDF',binary')并将其包含在发送到Mandrill的对象中,如下所示: { ... attachments: [{content: pdfAttach, name: "testing.pdf",

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

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

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

收件人收到一封包含无法打开的PDF文件的电子邮件。关于如何解决这个问题,你有什么想法吗?

如果你看看Mandrill的Messages API,你会发现附件的内容必须是base64编码的字符串。因此,代码应该是:

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

希望这有帮助。

真不敢相信我错过了。非常感谢。