如何使用 nodemailer 从上传按钮发送附件
How to send an attachment from an upload button using nodemailer
我正在尝试创建一个网站,其中包含用户可以填写的表单以及通过输入标签上传图像或 docx 文件。我正在使用控制器,因为我也为此使用了 hbs。
const output = `<p>You have a new message from the TIPH website<p>
<h3>Contact Details</h3>
<p>Name: ${req.body.contact_name}<p>
<h3>Inquiry</h3>
<p>${req.body.contact_inquiry}</p>
`;
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL,
pass: process.env.PASSWORD
}
});
var mailOptions = {
from: `${req.body.contact_email}`,
to: '...',
subject: `${req.body.contact_subject}`,
html: output,
attachments: [
{
filename: `${req.body.contact_upload}`,
}
]
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
res.render('contact-us', {
layout: '/layouts/main',
title: 'Contact Us',
contact_active: true,
msg: 'Your message has been sent!'
})
}
});
为了将文件上传到节点服务器,您应该将 HTML 表单元素的 enctype
属性设置为 enctype="multipart/form-data"
要使用文件服务器端,您可以使用 multer。此中间件使上传的文件可从 req.file
属性.
然后您可以将此文件添加到 attachments
数组。您可以在 documentation.
中找到需要发送给 Nodemailer 的道具
我正在尝试创建一个网站,其中包含用户可以填写的表单以及通过输入标签上传图像或 docx 文件。我正在使用控制器,因为我也为此使用了 hbs。
const output = `<p>You have a new message from the TIPH website<p>
<h3>Contact Details</h3>
<p>Name: ${req.body.contact_name}<p>
<h3>Inquiry</h3>
<p>${req.body.contact_inquiry}</p>
`;
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL,
pass: process.env.PASSWORD
}
});
var mailOptions = {
from: `${req.body.contact_email}`,
to: '...',
subject: `${req.body.contact_subject}`,
html: output,
attachments: [
{
filename: `${req.body.contact_upload}`,
}
]
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
res.render('contact-us', {
layout: '/layouts/main',
title: 'Contact Us',
contact_active: true,
msg: 'Your message has been sent!'
})
}
});
为了将文件上传到节点服务器,您应该将 HTML 表单元素的 enctype
属性设置为 enctype="multipart/form-data"
要使用文件服务器端,您可以使用 multer。此中间件使上传的文件可从 req.file
属性.
然后您可以将此文件添加到 attachments
数组。您可以在 documentation.