我正在尝试使用node_mailer
使用gmail smtp。我的nodejs日志出现以下错误(使用nodester)。这是我的代码:
var email = require('mailer');
email.send({
host : "smtp.gmail.com",
port : "465",
ssl : true,
domain : "domain.com",
to : "emailId@gmail.com",
from : "email@gmail.com",
subject : "You have been registered",
body: "<B>Hello! This is a test of the node_mailer.</B>",
authentication : "login", // auth login is supported; anything else is no auth
username : /* username */,
password : /* password */
},
function(err, result){
if(err){ self.now.error(err); console.log(err); return;}
else this.now.successfullySent(result);
});
我没有在堆栈中收到任何错误,但是没有收到电子邮件。
@ work4liberty和@David Ellis。感谢您的两个输入,但似乎问题不是我的服务器代码,我在我的客户端JavaScript的emailId中发送不正确的值。 Nodemailer
确实帮我调试了错误的正确文本问题。
答案 0 :(得分:6)
一些事情:
完全披露:我向Nodemailer提供了亚马逊SES功能(尽管最近重写的基础架构从0.1.x到0.3.x意味着我没有出现在{{1} },再见了。
编辑:我仔细研究了你的代码。假设您的实际代码中没有拼写错误,我怀疑以下行是罪魁祸首:git blame
基本上,回调函数的this.now.successfullySent(result);
不你认为它是什么。您需要将this
对象缓存到其范围内,方法是将其分配给this
之类的变量。 (假设我们没有处理底层库中的问题。)
答案 1 :(得分:3)
用我的密码替换xxx,这段代码适合我 复制并粘贴它,看看它是如何工作的 如果它不适合你,也许它只是偶尔发生的滞后或者(我希望不是)你的ip或你的msg中的东西让gmail认为它是垃圾邮件
var email = require('mailer');
email.send({
host : "smtp.gmail.com",
port : "465",
ssl : true,
domain : "domain.com",
to : "work4liberty@gmail.com",
from : "work4liberty@gmail.com",
subject : "You have been registered",
body: "<B>Hello! This is a test of the node_mailer.</B>",
authentication : "login", // auth login is supported; anything else $
username : 'work4liberty@gmail.com',
password : 'xxx'
},
function(err, result){
if(err){ self.now.error(err); console.log(err); return;}
else console.log('looks good')
});