使用POST表单时,Nodemailer返回404

时间:2019-07-30 06:16:41

标签: javascript node.js express

我正在尝试使用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>

1 个答案:

答案 0 :(得分:0)

您是否已将身份验证更改为凭据(您的电子邮件和密码)?如果是,则请允许不安全的应用通过gmail设置访问gmail,否则将不允许访问您的gmail帐户