Nodemailer在发送邮件时不返回任何内容

时间:2016-10-25 15:01:40

标签: node.js nodemailer

我使用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;

1 个答案:

答案 0 :(得分:0)

请编辑代码,看起来您在使用'Admin.findOne'的mongo上有错误

if(err) deferred.resolve(err);

if(err) deferred.reject(err);