我已经在本地(http://localhost:8080
)设置了一个基本的NodeJS服务器(使用nodemailer模块),以便可以测试该服务器是否可以实际发送电子邮件。
如果我正确理解SMTP选项(如果我输入错了,请更正我),我可以尝试将服务器中的电子邮件直接发送到某人的电子邮件帐户,或者可以仍然使用Node.js来发送电子邮件,但是通过实际的电子邮件帐户(在本例中为我的个人Gmail帐户),即使用SMTP。此选项要求我通过NodeJS远程登录该帐户。
因此,在下面的服务器中,我实际上正在尝试使用NodeJ将电子邮件从我的个人电子邮件帐户发送到我的个人电子邮件帐户。
这是我的简单服务器:
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport("SMTP", {
service: 'Gmail',
auth: {
user: '*my personal Gmail address*',
pass: '*my personal Gmail password*'
}
});
var http = require('http');
var httpServer = http.createServer(function (request, response)
{
transporter.sendMail({
from: '*my personal Gmail address*',
to: '*my personal Gmail address*',
subject: 'hello world!',
text: 'hello world!'
});
}).listen(8080);
但是,它不起作用。我收到谷歌的电子邮件说:
Google帐户:登录尝试被阻止如果是您,您可以切换到Google制作的应用(例如Gmail)以访问您的帐户(推荐)或通过https://www.google.com/settings/security/更改设置lesssecureapps,以便您的帐户不再受现代安全标准的保护。
我在nodemailer GitHub页面上找不到上述问题的解决方案。有没有人有解决方案/建议?
谢谢!:-)
答案在Google的消息中。
前往:https : //www.google.com/settings/security/lesssecureapps
将访问不太安全的应用程序设置为启用
对于问题的第二部分,以及
我实际上只是在遵循nodemailer github页面上的步骤,所以我的代码中没有错误
我将引导您转到nodemailer github页面,以及以下代码:
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: '[email protected]',
pass: 'userpass'
}
});
它与您的代码略有不同,因为您具有:nodemailer.createTransport("SMTP"
。删除SMTP参数即可使用(刚刚经过测试)。另外,为什么要将其封装在http服务器中?以下作品:
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'xxx',
pass: 'xxx'
}
});
console.log('created');
transporter.sendMail({
from: '[email protected]',
to: '[email protected]',
subject: 'hello world!',
text: 'hello world!'
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句