我想找到一种方法,从我的应用程序使用nodemailer
发送电子邮件给用户,无论是某种谷歌身份验证或任何其他方式。下面提到的工作代码已停止工作后,谷歌已禁用不太安全的应用程序选项。
const nodemailer = require('nodemailer')
const sendEmail = async options => {
const transporter = nodemailer.createTransport({
// host: "smtp.gmail.com",
// port: "465",
// secure: true,
service:'gmail',
auth: {
user: "USER_EMAIL",
pass: "USER_PASSWORD"
},
tls:{rejectUnauthorized:false}
})
const message = {
from: `${process.env.FROM_NAME} <${process.env.FROM_EMAIL}>`,
to: options.email,
subject: options.subject,
text: options.message,
html: options.message,
attachments: [
{
filename: '.png',
path: __dirname + '.png',
cid: '.png'
}
]
}
const info = await transporter.sendMail(message)
console.log('Message sent : %s', info.messageId)
console.log(__dirname)
}
module.exports = sendEmail
2条答案
按热度按时间nhaq1z211#
在写这篇文章的时候,谷歌已经不再支持Less Secure Apps了,而且你也不能使用你的谷歌账户密码。
你得生成一个新的应用密码。
应用程序密码仅在两步验证打开时有效。请按照以下步骤获取应用程序密码
1.转到https://myaccount.google.com/security
1.启用2FA
1.创建电子邮件的应用程序密码
1.将该密码(16个字符)复制到Nodemailer auth中的pass参数中。
rks48beu2#
您应该检查一下Xoauth2。
Nodmailer支持多种Oauth类型