我使用nodemailer尝试让管理员发送电子邮件,但到目前为止我的代码没有返回任何信息或错误。
承诺没有任何问题,但它始终是空的。 尝试使用transporter.verify也不会返回任何信息或错误。 找到有问题的管理员没有问题。
var deferred = Q.defer();
Admin.findOne({username: 'admin'}, function(err, res)
{
if(err) deferred.resolve(err);
if(res)
{
var admin = _.omit(res.toJSON(), 'password');
var transporter = nodemailer.createTransport("SMTP", {
service: 'gmail',
auth: {
user: 'sender@gmail.com',
pass: "password_here"
}
});
var mailOptions = {
from: 'sender@gmail.com',
to: 'destination@hotmail.com',
subject: 'TEST',
text: 'TEST',
html: '<p> TEST EMAIL </p>'
};
transporter.sendMail(mailOptions, function (err, info) {
if (err) deferred.reject(err);
if(info){
deferred.resolve(info);
} else {
deferred.resolve();
}
});
} else {
deferred.reject("Cannot find admin");
}
});
return deferred.promise;
答案 0 :(得分:0)
请编辑代码,看起来您在使用'Admin.findOne'的mongo上有错误
if(err) deferred.resolve(err);
到
if(err) deferred.reject(err);