我正在使用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)
}
}
答案 0 :(得分:1)
我遇到同样的问题......
实际上我得到了文件的相对路径,并面临着预测邮件发送的文件的同样问题,然后我尝试给出绝对(完整路径)并且它有效。
所以你可以给出绝对路径,然后看看。
或
Attachments参数接受一个数组,所以尝试将数组作为参数传递,如下所示:
attachments: [{ // file on disk as an attachment
filename: 'text3.txt',
path: '/path/to/file.txt' // stream this file
}]