javascript - 缺少 "PLAIN"nodemailer 的凭据

标签 javascript node.js server scripting nodemailer

我正在尝试在我的联系表单中使用 nodemailer 来接收反馈并将它们直接发送到电子邮件。这是下面的表格。

<form method="post" action="/contact">
      <label for="name">Name:</label>
      <input type="text" name="name" placeholder="Enter Your Name" required><br>
      <label for="email">Email:</label>
      <input type="email" name="email" placeholder="Enter Your Email" required><br>
      <label for="feedback">Feedback:</label>
      <textarea name="feedback" placeholder="Enter Feedback Here"></textarea><br>
      <input type="submit" name="sumbit" value="Submit">
</form>

服务器端的请求是这样的

app.post('/contact',(req,res)=>{
let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: 'user@gmail.com',
        password: 'password'
    }
});
var mailOptions = {
    from: req.body.name + '&lt;' + req.body.email + '&gt;',
    to: 'bantspl@gmail.com',
    subject: 'Plbants Feedback',
    text: req.body.feedback 
};
transporter.sendMail(mailOptions,(err,res)=>{
    if(err){
        console.log(err);
    }
    else {

    }
});

我收到错误 Missing credentials for "PLAIN"。感谢您提供任何帮助,非常感谢。

最佳答案

你有

auth: {
    user: 'user@gmail.com',
    password: 'password'
}

但是你应该这样写

auth: {
    user: 'user@gmail.com',
    pass: 'password'
}

只需重命名密码即可通过。

关于javascript - 缺少 "PLAIN"nodemailer 的凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48854066/

相关文章:

JavaScript:创建一个将多个键映射到一个值的映射?

javascript - 停止 setTimeOut();

node.js - 如何处理生产中express中的http错误?

node.js - 如何解决 catch { }//eslint-disable-line 问题?

ios - iOS 是否存储 DNS,如果存储,我如何在服务器传输后重置它?

javascript - 带有 Highcharts 的下降线

javascript - 如何制作 TextGeometry 多行?如何将它放在一个正方形内,使其像 html 文本在 div 内一样环绕?

node.js - node-cron 每 3 小时运行一次作业

c - C : Data not being sent/received properly? 中的服务器/套接字编程

multithreading - 如何创建可在 Rust 多线程服务器中使用的结构?