使用sendgrid帮助程序无法正常工作,在节点js中附加PDF

时间:2016-10-05 10:14:51

标签: node.js pdf sendgrid

我正在使用Sendgrid(带帮助程序)从nodeJs服务器发送电子邮件。 当我发送PDF文件作为附件时,响应是200 OK并且正在接收附有PDF的邮件。但是当我尝试打开显示以下错误时,该文件未打开。

  

“预览此文档时出现问题。”

我正在使用“pdfkit”模块来创建pdf文件。

这是我的代码。

  var doc = new PDFDocument({
    size: 'letter'
});
doc.pipe(fs.createWriteStream('will.pdf'));
doc.text('my text11111')
doc.end();
//
fs.readFile('will.pdf', function (err, data) {
    mailer.sendMail([{ name: '', email: 'email@gmail.com' }], 'PDF TEST', "PDF TEST BODY", { 'base64Content': data.toString('base64'), 'fileName': 'test', 'fileType': 'pdf' });
});

在发送邮件功能中,附件生成如下。

  function sendMail(toList, subject, message, attachmentObj) {
     if (attachmentObj) {
       var attachment = new helper.Attachment()
       attachment.setContent(attachmentObj.base64Content)
       attachment.setType("application/" + attachmentObj.fileType)
       attachment.setFilename(attachmentObj.fileName + "." + attachmentObj.fileType)
       attachment.setDisposition("attachment")
       mail.addAttachment(attachment)
   }
}

1 个答案:

答案 0 :(得分:1)

我遇到同样的问题......

实际上我得到了文件的相对路径,并面临着预测邮件发送的文件的同样问题,然后我尝试给出绝对(完整路径)并且它有效。

所以你可以给出绝对路径,然后看看。

Attachments参数接受一个数组,所以尝试将数组作为参数传递,如下所示:

  attachments: [{   // file on disk as an attachment
            filename: 'text3.txt',
            path: '/path/to/file.txt' // stream this file
        }]