我是node.js编程新手。我使用nodemailer模块发送电子邮件。
const nodemailer = require ('nodemailer'),
credentials=require('./credentials.js');
var mailTransport=nodemailer.createTransport({
service:'Gmail',
auth: {
user : credentials.gmail.user,
pass : credentials.gmail.password,
}
});
function sendMail(mail_id){
mailTransport.sendMail({
from: ' "my name" <myname@gmail.com>',
to : mail_id, //user@gmail.com
subject : 'Hello',
text: "Hello How do u do ?",
},function(err,info){
if(err){
console.log('Unable to send the mail :'+err.message);
}
else{
console.log('Message response : '+info.response);
}
});
}
exports.sendMail=sendMail;
这是我向不同用户发送电子邮件的程序。但我得到无效登录。我不知道为什么会这样。我是node.js和服务器端脚本的新手。
我正在使用我的Gmail用户名和密码来获取凭据
请帮帮我。
答案 0 :(得分:24)
一个原因可能是Gmail的“现代安全标准”保护。
检查gmail收件箱中是否有任何主题为“Google帐户:登录尝试已被屏蔽”的新邮件
如果是,请打开邮件并点击链接https://www.google.com/settings/security/lesssecureapps
将'访问安全性较低的应用'设置为'开启'。再试一次,现在应该可以了。
答案 1 :(得分:9)
您需要为应用启用安全性:
| * |如果你使用gmail,
dependencies {
compile project(':realm')
compile project(':react-native-schedule-sms')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.react:react-native:+" // From node_modules
}
| * |如果你使用雅虎,
Use :
service: 'gmail',
Goto :
https://myaccount.google.com/lesssecureapps
Enable :
Allow less secure apps: ON
| * |如果您使用Live或Hotmail,则无需启用任何内容。
Use :
service: 'yahoo',
Goto :
https://login.yahoo.com/account/security
Enable :
Allow apps that use less secure sign in
答案 2 :(得分:7)
您是否仔细检查过您的登录凭据?你也仔细检查了#34;来自&#34;地址与您的电子邮件相匹配?
我在3周前使用nodemailer进行了一些测试,在github页面上给出了gmail示例,它就像一个魅力:
https://github.com/andris9/Nodemailer
无效登录表示输入错误/错误凭据。
答案 3 :(得分:3)
特别是2个问题:或者您没有启用缺少安全应用 https://myaccount.google.com/lesssecureapps,或者您没有启用显示解锁验证码 {{3} },您需要同时打开它们。
答案 4 :(得分:1)
就我而言, 仅打开安全性较低的应用是不够的:https://myaccount.google.com/lesssecureapps
我还必须启用显示解锁验证码:https://accounts.google.com/DisplayUnlockCaptcha
这解决了我的问题,我能够使用nodemail和gmail发送电子邮件。
实际上,nodemailer社区站点本身说,如果启用安全性较低的应用程序不能单独运行,则执行第二步以启用验证码。
https://community.nodemailer.com/using-gmail/
上图取自我共享的nodemailer文章链接。
答案 5 :(得分:0)
如果您有工作区用户帐户,作为管理员,您可能需要: