У меня возникают проблемы с прикреплением PDF-файла, созданного с помощью pdfkit(node), к электронному письму, которое отправляется через nodemailer и API Sendgrid. Электронная почта работает нормально. PDF-файл, который создается на диске, в порядке, но PDF-файл во вложении продолжает появляться поврежденным и нечитаемым. Я пробовал много разных вариантов и исследовал Google, но я не уверен, как заставить это работать.
код, который создает 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();
мой код nodemailer:
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: '[email protected]',
from: '[email protected]',
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 прямо на мою электронную почту. Кроме того, я не уверен, как это сделать.