【发布时间】:2018-05-18 04:33:08
【问题描述】:
我有一个应用程序,它使用 Nodemailer 发送带有附件的电子邮件。首先,我使用 multer 将附件保存在服务器上(运行良好),因此我可以将文件的路径传递给 nodemailer 路由中的附件。邮件和附件发送成功,但附件打开/阅读失败!
这里是 nodemailer 路由:
app.post("/send", function(req,res){
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'my gmail',
pass: 'my pass'
}
});
var quotename = req.params.id;
console.log(quotename);
var storage = multer.diskStorage({
destination: function (req,file, callback){
callback(null, './uploads');
},
filename: function (req, file, callback){
callback(null, "Q" + quotename + ".pdf");
}
});
var upload = multer ({storage : storage}).single("myFile");
upload(req, res, function(err){
if(err){
console.log(err);
} else {
const mailOptions = {
from: req.body.fr, // sender address
to: req.body.to, // list of receivers
bcc: req.body.fr,
subject: req.body.subject, // Subject line
html: '<h4>Dear ' + req.body.contname+ '</h4>' + '<p>'+
req.body.message + '</p>' + '<p>Kind Regards</p>' +
req.body.user,// html body
attachments: [
{ // filename and content type is derived from path
filePath: '/constimator/uploads/Q' + quotename + '.pdf',
},
],
};
transporter.sendMail(mailOptions, function (err, info) {
if(err){
return console.log(err);
}else{
console.log(req.body.myFile)
res.redirect("/submitted"); }
});
});
});
我不知道是因为文件路径/路径问题还是其他原因。我也尝试了路径(而不是 filePath),但同样的问题
【问题讨论】:
-
您的具体问题是什么?这是相当多的代码,我不确定您在哪里需要帮助。
-
文件被保存在文件夹中,但我收到“没有这样的文件或目录,打开”路径的错误
-
您能否提供您获得的确切堆栈跟踪,并显示您的目录结构的屏幕截图以及您所说的文件:
the file gets saved in the folder。我相信这是一个路径问题。
标签: node.js express nodemailer