发送带有PDF扩展名的附件,但它不起作用



我正在尝试创建一个动态文件并将其发送给附件中的用户,但下载后无法打开。 显示错误"无法加载 PDF 在内容中,我正在发送所需的数据。 这是我的代码

router.get('/file',function(req, res){
var filename1='invoice.pdf';
filename1 = encodeURIComponent(filename1);
var mailOptions={
to: 'userMail@gmail.com',
subject: 'Speaker Added',
from: "admin@gmail.com",
headers: {
"X-Laziness-level": 1000,
"charset" : 'UTF-8'
},
html: '<p style="color:#0079c1;">Hello'+' '+'My Name'+'</p></br>'
+'<p style="color:#0079c1;">Thank you for choosing HOWDY.<p></br>'
+'<p>Click on the link below to activate your account and get redirected to HOWDY</p></br>',
attachments: [

{   
'filename':filename1,
'content': 'data',
'contentType':'application/pdf',
'contentDisposition':'attachment'
}
]

}
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'admin@gmail.com', 
pass: 'admin56789' 
}
});
transporter.sendMail(mailOptions, function(error, response){
if(error){
return res.send(error);
}
else{
res.send({
state:'success',
message:"Send"
});
}
});
})

">

您正在发送"数据"作为文件的内容。如果右键单击文件,然后选择"使用记事本打开"(或基本文本编辑器(,您将看到。

如果您使用content选项,Nodemailer 的附件希望接收文件的数据。您可能更喜欢使用path,它可以是文件路径或 URL。

在此处阅读更多内容。

您的附件:

attachments: [
{   
'filename':filename1,
'content': 'data',
'contentType':'application/pdf',
'contentDisposition':'attachment'
}
]

应该更接近:

attachments: [
{   
'filename':filename1,
//Either get filecontent
'content': filecontent,
//Or the file full path
'path':filepath,
'contentType':'application/pdf',
'contentDisposition':'attachment'
}
]

最新更新