我试图发送电子邮件gmail smtp,但我收到了错误:
我的电子邮件和密码是正确的我使用nodemailer发送邮件;
var nodemailer = require('nodemailer');
// create reusable transporter object using SMTP transport
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
admin: 'myuseremail.com',
pass: 'password'
}
});
var mailOptions = {
from: 'sender address', // sender address
to: to, // list of receivers
subject: 'Password Reset', // Subject line
html: 'Your one time password is : <b>' + temporaryPassword + ' </b>' // html body
};
transporter.sendMail(mailOptions, function (error, info) {
console.log(error,info);
}
在日志中我收到错误:
{
[Error: Invalid login]
code: 'EAUTH',
response: '535-5.7.8 Username and Password not accepted. Learn more at\n535 5.7.8 https://support.google.com/mail/answer/14257 k5sm20957041pdo.48 - gsmtp',
responseCode: 535
}
我尝试了一些链接,但这不起作用:
https://laracasts.com/discuss/channels/general-discussion/help-email-doesnt-get-sent-with-gmail-smtp
答案 0 :(得分:26)
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'user@gmail.com',
pass: 'password'
}
});
尝试以上操作,并执行以下操作。
登录https://www.google.com/settings/security/lesssecureapps并开启访问安全性较低的应用。
我希望它也适合你。
谢谢。
答案 1 :(得分:7)
首先,您必须启用设置,以允许所使用的gmail帐户的安全性较差的应用程序。这是链接:https://myaccount.google.com/lesssecureapps
其次,允许访问“显示解锁字幕选项”(允许访问您的Google帐户)。这是链接:https://accounts.google.com/DisplayUnlockCaptcha
答案 2 :(得分:1)
如果您使用的是OAuth2并且您面临上述问题,请按照下图所示配置我的传输器解决了我的问题。
const transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
type: 'OAuth2',
user: process.env.MAIL_USER,
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
refreshToken: process.env.GOOGLE_CLIENT_REFRESH_TOKEN
}
});
如果您不确定如何生成ID,密码和令牌,请按照此处的步骤https://medium.com/@pandeysoni/nodemailer-service-in-node-js-using-smtp-and-xoauth2-7c638a39a37e
答案 3 :(得分:0)
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'user@gmail.com',
pass: 'password'
}
});
试试这个。
答案 4 :(得分:0)
let transporter = nodeMailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: true,
auth: {
user: 'example@gmail.com',
pass:'your gmail pass'
}
});
答案 5 :(得分:0)
https://myaccount.google.com/lesssecureapps
单击此链接,在“不太安全的应用程序访问权限”上。因此,在该gmail将向您的设备发送电子邮件后,请确认是您。您完成了快乐的编码
答案 6 :(得分:0)
Google不允许您直接向他人发送电子邮件。首先,您必须创建一个应用密码。为此,请按照以下步骤操作完成
var smtpTransport = nodemailer.createTransport({
service: "Gmail",
auth: {
user: "example@example.com",
pass: "password"
}
就是这样。
答案 7 :(得分:0)
对我来说 secure:true给出ssl错误。 我变了 安全:如下所示为我工作。
let transporter = nodeMailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: false, //<<here
auth: {
user: 'example@gmail.com',
pass:'your gmail pass'
}
});