我在将使用 pdfkit(node) 制作的 pdf 附加到通过 nodemailer 和 Sendgrid API 发送的电子邮件时遇到问题。电子邮件工作正常。生成到磁盘的 pdf 文件很好,但附件中的 pdf 文件不断损坏且无法读取。我尝试了许多不同的变体,并通过谷歌进行了研究,但我不确定如何让它发挥作用。
创建pdf的代码:
var fs = require('fs');
var PDFDocument = require('pdfkit');
doc = new PDFDocument({
size: 'letter'
});
doc.pipe(fs.createWriteStream('./public/img/test.pdf'));
doc.text('my text')
doc.end();
我的节点邮件程序代码:
var nodemailer = require('nodemailer');
var sgTransport = require('nodemailer-sendgrid-transport');
var options = {
auth: {
api_key: process.env.SENDGRID_API
}
}
var mailer = nodemailer.createTransport(sgTransport(options));
var email = {
to: 'XXXXXXXX@gmail.com',
from: 'example@gmail.com',
subject: 'Please work',
text: 'Check out this pdf',
attachments: [{
filename: 'test.pdf',
path: './public/img/test.pdf',
contentType: 'application/pdf'
}]
};
mailer.sendMail(email, function(err, res){
if (err){
console.log(err);
}
console.log(res);
});
我错过了什么吗?我没有将 pdf 写入磁盘,而是读到另一种方法是将 pdf 直接流式传输到我的电子邮件。除了我也不知道该怎么做。