简体   繁体   English

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

[英]Nodemailer returns nothing on sending mail

I'm using nodemailer to try and get an admin to send an email, but the code I have so far returns no info or error. 我正在使用nodemailer尝试让管理员发送电子邮件,但是到目前为止,我的代码未返回任何信息或错误。

The promise returns with no issue, but it's always empty. 承诺没有任何问题,但始终为空。 Trying to use transporter.verify returns no info or error as well. 尝试使用transporter.verify也不返回任何信息或错误。 There are no issues with finding the admin in question. 查找相关管理员没有任何问题。

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;

Please edit the code, it looks like you have an error on mongo with 'Admin.findOne' 请编辑代码,看来您在Mongo上使用“ Admin.findOne”时出错

if(err) deferred.resolve(err);

to

if(err) deferred.reject(err);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM