我正在尝试使用Nodemailer创建与我联系的表单。每当我用表单发布时,它总是返回404错误,并且我怀疑我的Async / Await代码中存在错误。我的代码输出第一个console.log,然后返回404。我很新,根本找不到我的错误,关于使用异步和Nodemailer进行等待的文档很少,这使难度变得更大。我尝试在github上用他们的测试代码替换我的代码,并且工作正常。
邮件程序控制器|导出到邮寄路线
Context()
使用路线和表单更新
表格
LINGER
路线
module.exports = {
send: async (req, res, next) => {
try {
console.log(`Preparing Email`);
const transporter = nodemailer.createTransport({
service: `gmail`,
auth: {
user:`psuedoEmail@gmail.com`,
pass:`password`
}
});
console.log(`reading mail options...`);
const mailOptions = {
from: req.body.from,
to: `psuedoEmail@gmail.com`,
subject: req.body.subject,
text: req.body.text
};
console.log(`Attempting to send Mail`);
const info = await transporter.sendMail(mailOptions, (err, response) =>{
if(err){
console.log(err);
res.redirect(`/contact`);
} else {
console.log(`Info: `, info, response);
transporter.close();
res.redirect(`/`);
}
});
} catch (error){
next();
}
}
};
评论者要求的错误
<form action="/" method="POST">
<div class="form-group">
<label for="name">Name:</label>
<input type="email" class="form-control" id="from">
</div>
<div class="form-group">
<label for="subject">Subject:</label>
<input type="text" class="form-control" id="subject">
</div>
<div class="form-group">
<label for="text">Text:</label>
<input type="text" class="form-control" id="text">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
答案 0 :(得分:0)
您是否已将身份验证更改为凭据(您的电子邮件和密码)?如果是,则请允许不安全的应用通过gmail设置访问gmail,否则将不允许访问您的gmail帐户