我正在尝试创建一个动态文件并将其发送给附件中的用户,但在下载后却没有打开。 显示错误说"无法加载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"
});
}
});
})
&#13;
&#34;
答案 0 :(得分:0)
您正在发送“数据”作为文件的内容。如果右键单击您的文件,然后选择用记事本(或基本文本编辑器)打开,您将看到。
如果您使用content
选项,Nodemailer的附件期望接收文件的数据。您可能更喜欢使用path
,它可以是文件路径或URL。
了解更多here。
您的附件:
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'
}
]