2 回答
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);
}
});
});
TA贡献1779条经验 获得超6个赞
是的,您需要输入您的真实信息,我建议您阅读此文本。
尽管 Gmail 是开始发送电子邮件的最快方式,但除非您使用 OAuth2 身份验证,否则它绝不是一个更好的解决方案。Gmail 希望用户是真正的用户而不是机器人,因此它会针对每次登录尝试运行大量试探法,并阻止任何看起来可疑的内容,以保护用户免受帐户劫持企图。例如,如果您的服务器位于另一个地理位置,您可能会遇到麻烦——在您的开发机器上一切正常,但消息在生产环境中被阻止。
此外,Gmail 提出了“不太安全”应用程序的概念,基本上任何人都可以使用普通密码登录 Gmail,因此您最终可能会遇到一个用户名可以发送邮件的情况(对“不太安全”的应用程序的支持是启用)但其他被阻止(禁用对“不太安全”的应用程序的支持)。您可以在此处配置您的 Gmail 帐户以允许安全性较低的应用程序。使用此方法时,请确保还通过完成“Captcha Enable”挑战来启用所需的功能。没有这个,安全性较低的连接可能无法工作。
并确保“安全性较低的应用程序”选项已打开 如果您不知道如何打开,可以访问此处
有关更多信息,我建议您查看此页面
添加回答
举报