我正在尝试在 MERN 堆栈应用程序中为用户创建电子邮件调度服务。 我正在使用 Nodemailer 进行电子邮件服务。但我需要在谷歌帐户设置中启用“访问不太安全的应用程序”。用户对这个选项不会感到安全。
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: userEmail,
pass: userPassword
}
});
这是代码。它需要客户端 ID、秘密和访问令牌,以便 Nodemailer 发送邮件,而无需“允许启用不太安全的应用程序”。但我认为我无法获得该信息。 有其他方法可以解决这个问题吗?
我不知道谷歌什么时候更新了他们的安全措施,以防止未经授权的方式发送邮件。截至目前,我们正处于开发阶段,因此我们属于该类别。
方法一:- 您可以使用谷歌提供的应用程序密码功能。只需进入您的谷歌个人资料,在安全部分您将可以选择应用程序密码,您只需为您的密码创建一个密码,该密码将暂时激活用于开发目的。
方法2:- 您可以使用第三方来为您执行此操作。目前我正在使用“mailtrap”进行这项工作,您也可以按照给定的说明进行操作,或者您可以自己在官方网站上检查。
`const nodemailer = require('nodemailer');
const sendEmail = async (options) => {
var transport = nodemailer.createTransport({
host: "sandbox.smtp.mailtrap.io",
port: 2525,
auth: {
user: "b970e161dc43e5",
pass: "8ca678877af03a"
}
});
const mailOptions = {
from: process.env.SMTP_EMAIL,
to: options.email,
subject: options.subject,
body: options.body
}
await transport.sendMail(mailOptions);
}
module.exports = sendEmail;`