我正在尝试发送一个在发出get请求时触发的文件。我相信文件的内容是get请求的res.body。查看nodemailer文档,我看到可以指定文件的内容。
request.get({
url: 'https://docs.google.com/spreadsheets/export?id='+posting.driveID+'&exportFormat=xlsx',
encoding: null, // Force Request to return the data as Buffer
headers: {
Authorization: "Bearer "+access_token
}
}, function done (err, res) {
console.log(res.body);
var mailOptions={
from : "<>",
to : "<>",
subject : "new download",
generateTextFromHTML : true,
html : "<h2>Download "+posting.title+"</h2>",
attachments: [{
filename: "test.xlsx",
content: res.body
}]
};
transporter.sendMail(mailOptions, function(error, resp){
if(error) {
}
else{
console.log("Message sent: " + resp.message);
}
transporter.close();
});
当记录res.body时,我发现它存在。电子邮件已发送,我在收件箱中收到。但是电子邮件没有附件 - 它只是一个标准的文本电子邮件。我怎样才能让nodemailer发送我的遗产?
答案 0 :(得分:0)
我明白了。当我使用0.7.1时,我正在查看nodemailer 2.0.0的文档。语法略有不同。
0.7.1: {fileName:“test.xlsx”, 内容:res.body}
2.0.0: {filename:“test.xlsx”, 内容:res.body}
答案 1 :(得分:0)
您可能还想指定内容类型。我可以为.xlsx找到的最好的是:
{
fileName: 'myFile.xlsx',
content: req.body,
contentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
}