Мне нужно передавать или буферизовать сгенерированный pdf-файл как вложение электронной почты, не сохраняя pdf-файл локально, я могу получать электронную почту, но без вложения, я не могу выяснить, в чем проблема, плз, помогите мне .. ..
router.get("/email/:ptId", async(req, res)=>{
Consultation.aggregate([
{
'$match':{ptId:req.params.ptId}
},{
"$lookup":{
"from":"prescriptiontemps",
"localField":"ptId",
"foreignField":"ptId",
"as":"prescription_info"
}
}
])
.exec(function(err, alldetails){
if(err){
res.status(400).json(err)
console.log("error",err)
}else{
res.status(200).render("report",{details: alldetails}, function(err,html){
// res.status(200).json(results);
const doc = pdf.create(html, options )
// if (err) return console.log(err);
let buffers = [];
doc.on('data',buffers.push.bind(buffers));
doc.on('end',() =>{
let pdfData = Buffer.concat(buffers);
var mailoptions = {
from: '"Finchtech" <finchtest4@gmail.com>',
to: "keerthimys.48@gmail.com",
subject:"prescription",
html: html,
attachment: [{
filename:"prescription.pdf",
content: pdfData
}]
}
transporter.sendMail(mailoptions, (error, info)=>{
if (error){
return console.log(error);
}
console.log('message sent: %s',info.messageId);
console.log('preview URL: %s', nodemailer.getTestMessageUrl(info));
});
})
doc.end();
})
}
})
})
Я попытался передать поток во вложение, но все равно получил тот же результат, что смог получить письмо, а не вложение.
pdf.create(html, options ).toStream((err, stream)=>{
var self = this;
if (err) return console.log(err);
// var attach = attachemnt({data:buffer, filename:' prescription.pdf'})
//nodemailer parameters
var mailoptions = {
from: '"Finchtech" <finchtest4@gmail.com>',
to: "keerthimys.48@gmail.com",
subject:"prescription",
// html: html,
attachment:
[{
// data: buffer,
filename: 'test.pdf',
content: stream
}]
}
transporter.sendMail(mailoptions, (error, info)=>{
if (error){
return console.log(error);
}
console.log('message sent: %s',info.messageId);
console.log('preview URL: %s', nodemailer.getTestMessageUrl(info));
});
});
})
}
})
})