为了账号安全,请及时绑定邮箱和手机立即绑定

TypeError - 无效登录

TypeError - 无效登录

SMILET 2022-12-02 10:50:45
我写了一些代码来在我的 nodejs 应用程序中实现 nodemailer 来发送邮件。我写了这段代码:var express = require("express");var router = express.Router();var nodemailer = require("nodemailer");/* GET contact page. */router.get("/", function (req, res, next) {  res.render("contact", { title: "Contact" });});router.post("/send", function (req, res, next) {  var transporter = nodemailer.createTransport({    service: "Gmail",    auth: {      user: "MyEmailHere",      pass: "password",    },    tls: {      rejectUnauthorized: false    }  });  var mailOptions = {    from: "MyEmailHere",    to: "myOtherEmailId",    subject: "Website Submission",    text:      "You have a new submission with the following details...Name: " +      req.body.name +      " Email: " +      req.body.email +      " Message: " +      req.body.message,    html:      "<p> You got a new submission with the following details...</p><ul></ul><li>Name: " +      req.body.name +      "</li><li>Email: " +      req.body.email +      "</li><li>Message: " +      req.body.message +      "</li></ul>",  };  transporter.sendMail(mailOptions, function (error, info) {    if (error) {      console.log(error);      res.redirect("/");    } else {      console.log("Message Sent: " + info.response);    }  });});module.exports = router;但我收到一条错误消息:“不接受用户名和密码。” 我应该使用我的真实密码吗?除了 Gmail 之外,nodemailer 是否还支持 Yahoomail?顺便说一下,我仍在学习并处于开发模式。一点帮助?
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

当我正确输入我自己的信息并打开“不太安全的应用程序”时,它完美地工作,请尝试这种方式


注意(关键):确保“不太安全的应用程序”选项已打开 (如果您不知道如何打开,可以访问此处)


注意:确保关闭两步验证


var express = require("express");

var router = express.Router();

var nodemailer = require("nodemailer");


const myGmailAccount = {

  mail: 'your_gmail_address', // MAIL

  passw: 'your_gmail_password', // PASSW

};


/* GET contact page. */

router.get("/", function (req, res, next) {

  res.render("contact", { title: "Contact" });

});


router.post("/send", function (req, res, next) {

  var transporter = nodemailer.createTransport({

    service: "Gmail",

    auth: {

      user: myGmailAccount.mail,

      pass: myGmailAccount.passw,

    },

    tls: {

      rejectUnauthorized: false

    }

  });


  var mailOptions = {

    from: myGmailAccount.mail,

    to: 'emintayfur@icloud.com', // recipient mail

    subject: "Website Submission",

    text:

      "You have a new submission with the following details...Name: " +

      req.body.name +

      " Email: " +

      req.body.email +

      " Message: " +

      req.body.message,

    html:

      "<p> You got a new submission with the following details...</p><ul></ul><li>Name: " +

      req.body.name +

      "</li><li>Email: " +

      req.body.email +

      "</li><li>Message: " +

      req.body.message +

      "</li></ul>",

  };


  transporter.sendMail(mailOptions, function (error, info) {

    if (error) {

      console.log(error);

      res.redirect("/");

    } else {

      console.log("Message Sent: " + info.response);

    }

  });

});


查看完整回答
反对 回复 2022-12-02
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

是的,您需要输入您的真实信息,我建议您阅读此文本。

尽管 Gmail 是开始发送电子邮件的最快方式,但除非您使用 OAuth2 身份验证,否则它绝不是一个更好的解决方案。Gmail 希望用户是真正的用户而不是机器人,因此它会针对每次登录尝试运行大量试探法,并阻止任何看起来可疑的内容,以保护用户免受帐户劫持企图。例如,如果您的服务器位于另一个地理位置,您可能会遇到麻烦——在您的开发机器上一切正常,但消息在生产环境中被阻止。

此外,Gmail 提出了“不太安全”应用程序的概念,基本上任何人都可以使用普通密码登录 Gmail,因此您最终可能会遇到一个用户名可以发送邮件的情况(对“不太安全”的应用程序的支持是启用)但其他被阻止(禁用对“不太安全”的应用程序的支持)。您可以在此处配置您的 Gmail 帐户以允许安全性较低的应用程序。使用此方法时,请确保还通过完成“Captcha Enable”挑战来启用所需的功能。没有这个,安全性较低的连接可能无法工作。

并确保“安全性较低的应用程序”选项已打开 如果您不知道如何打开,可以访问此处

有关更多信息,我建议您查看此页面


查看完整回答
反对 回复 2022-12-02
  • 2 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信