这是我的settingController:
var sendSmtpMail = function (req,res) {
var transport = nodemailer.createTransport({
service:'gmail',
auth: {
user: "asdfqweerrccb@limitlesscircle.com",
pass: "qwerr@wee"
}
});
var mailOptions = {
from: "transactions@limitlesscircle.com",
to:'umaraja1124@gmail.com',
subject: req.body.subject+"nodejs working ?",
text: "Hello world ?",
}
transport.sendMail(mailOptions, function(error, response){
if(error){
res.send("Email could not sent due to error: "+error);
console.log('Error');
}else{
res.send("Email has been sent successfully");
console.log('mail sent');
}
});
在postman中,我得到了这样的错误:
由于以下错误,无法发送电子邮件:
Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials g7sm64435626pfj.29 - gsmtp
9条答案
按热度按时间0dxa2lsx1#
更新(2022-05-02)
正如评论中提到的,直接引用自Google:
2022年5月30日,您可能无法访问使用安全性较低的登录技术的应用程序
因此,底部代码可能会停止与Gmail。解决方法是开启两步验证,生成应用密码,然后使用生成的密码使用 nodemailer 发送邮件,具体操作如下:
1.转到您的Google帐户https://myaccount.google.com/
1.进入安全
1.在 “登录到谷歌” 部分选择两步验证-在这里你必须验证自己,在我的情况下,它是与电话号码和确认码发送短信。之后,您将能够启用两步验证
1.返回到 “登录Google” 部分中的安全,选择应用密码
1.从 Select app 下拉菜单中选择**Other *(自定义名称)***并输入名称 ,例如nodemailer
1.将出现一个带有密码的模式对话框。获取该密码并在代码中使用它。
如果仍然存在问题,请尝试通过从Google帐户访问https://accounts.google.com/DisplayUnlockCaptcha来清除验证码。
使用示例
旧答案(2022-05-02之前)
我认为首先你需要在你的谷歌帐户中设置Allow less secure apps to access account-默认情况下,这个设置是关闭,你只需打开它**。您还需要确保禁用帐户的2因素身份验证。您可以查看如何禁用它here。
然后,我使用以下脚本从gmail帐户发送电子邮件,还使用yahoo和hotmail帐户进行了测试。
例如,如果你把前面的代码放在
send-email.js
中,打开终端并写:您应该在控制台-success中看到邮件是否发送成功或
nodemailer
返回的错误消息别忘了先设置-Allow less secure apps to access account。
我希望这段代码对你有用。祝你好运!
mccptt672#
如果您在Google帐户上启用了双因素身份验证,则无法使用常规密码以编程方式访问Gmail。您需要生成一个应用程序特定的密码,并使用它来代替您的实际密码。
步骤:
你的脚本现在看起来像这样:
我希望这对某人有帮助。
jpfvwuh43#
https://myaccount.google.com/lesssecureapps如果它是OFF,打开它以启用lesssecureapps。(我有同样的问题,打开它解决我的问题)
a11xaf1n4#
2022年5月,谷歌删除了安全性较低的应用选项(https://myaccount.google.com/lesssecureapps)。
因为将第三方连接到谷歌是有风险的。
Gmail提供了应用程序密码。您可以在其中使用到应用程序(应用程序)
1.转到Google >我的帐户>安全性>两步验证(只需通过OTP或电话验证您的号码)
1.向下滚动到选择应用程序(在密码和登录方法框中),然后选择其他(自定义名称)。
1.为此应用程序的密码命名,例如:“nodemailer”
1.复制生成密码并将其粘贴到Node.js脚本中,而不是实际的Gmail密码。(你不需要空格。)
一旦你复制了应用程序的p/w,只需在https://www.smtper.net/上注册smtp(勾选所有选项,不要留下任何字段填写。)然后点击“提交”(检查你的Gmail帐户)。
nodemailer代码
为了更好地理解,请遵循下面给出的两个链接。
1.官方SMTP:https://nodemailer.com/smtp/
1.安装免费的Google SMTP服务器:https://www.youtube.com/watch?v=ql5Dex4m40w
kcugc4gi5#
确保您使用的是正确的端口:
port: 587
目前访问此链接以允许不太安全的应用程序访问:https://myaccount.google.com/lesssecureapps
在此链接上启用recaptcha:https://accounts.google.com/b/0/DisplayUnlockCaptcha
等待几分钟并尝试发送电子邮件。
或者使用sendgrid。它有一个免费版本。
如果您在收件箱中看不到电子邮件,请检查垃圾邮件文件夹。
2lpgd9686#
我遇到了同样的问题,我是这样解决的:
1.后藤https://admin.google.com并使用用于设置企业帐户和创建用户的主帐户登录。请记住使用主电子邮件ID。
1.点击安全图标,你会被带到这个页面,你会看到不太安全的应用程序部分,点击它。
1.现在你会看到这个,允许用户或给予权限这里.
1.你还没有完成,不去下面的链接:https://myaccount.google.com/u/1/lesssecureapps
现在你会看到开关。启用它并尝试它肯定会工作。
Peace:)
6ju8rftf7#
您必须允许Less-Secure-Apps访问您的Google帐户中的帐户设置-默认情况下,此设置是关闭的,您可以简单地将其打开。Image example
ngynwnxp8#
有一些帐户设置是必要的,你通过它发送使用SMTP。
如果您在帐户上启用了两步验证,则需要在设备设置中使用应用程序特定的密码(在Gmail帐户中创建):使用特定于应用程序的密码登录
如果没有,请试试这个:在https://mail.google.com使用网络浏览器登录Gmail帐户,然后转到“设置”>“帐户和导入”>“其他Google帐户设置”。在“安全性”下,向下滚动并启用对安全性较低的应用程序的访问。启用SMTP、POP或IMAP访问需要此设置。
如果仍然存在问题,请尝试清除验证码:访问https://accounts.google.com/DisplayUnlockCaptcha并使用Gmail用户名和密码登录。如有必要(通常不需要),请输入扭曲图片中的字母,然后按“继续”。这将允许设备在10分钟内注册为已批准的连接。请注意,您必须使用您尝试添加到设备的帐户-如果浏览器已登录到另一个帐户,则必须先注销。此外,您必须在按下“继续”后的十分钟内触发设备进行连接。
Google支持团队的解释
ejk8hzay9#
您正在使用Gmail服务,因此您的邮件必须在Gmail中: