Node.js Can';t发送邮件节点邮件器

Node.js Can';t发送邮件节点邮件器,node.js,email,nodemailer,Node.js,Email,Nodemailer,我收到收件人错误:无法发送邮件-使用npm节点邮件程序发送电子邮件时没有收件人定义的错误。我正在参考文档中的示例。考虑abc@gmail.com用我真正的电子邮件 var emailAddress = "abc@gmail.com"; mailOptions = { from: "Admin <abc@gmail.com>", // sender address to: emailAddress, // list of receivers subject: "

我收到收件人错误:无法发送邮件-使用npm节点邮件程序发送电子邮件时没有收件人定义的错误。我正在参考文档中的示例。考虑abc@gmail.com用我真正的电子邮件

var emailAddress = "abc@gmail.com";
mailOptions = {
    from: "Admin <abc@gmail.com>", // sender address
    to: emailAddress, // list of receivers
    subject: "Hello", // Subject line
    text: "hello", // plaintext body
    html: "<b>Hello</b>" // html body
}

smtpTransport = nodeMailer.createTransport("SMTP",{
    service: "Gmail",
    auth: {
        user: "abc@gmail.com",
        pass: "123"
    }
});

smtpTransport.sendMail(mailJson, function(error, response){
    if(error){
        console.log(error);
    }else{
        console.log("Message sent: " + response.message);
    }

    // if you don't want to use this transport object anymore, uncomment following line
    smtpTransport.close(); // shut down the connection pool, no more messages
});
var emailAddress=”abc@gmail.com";
邮件选项={
发件人:“Admin”,//发件人地址
收件人:emailAddress,//收件人列表
主题:“你好”//主题行
text:“hello”,//纯文本正文
html:“你好”//html正文
}
smtpTransport=nodeEmailer.createTransport(“SMTP”{
服务:“Gmail”,
认证:{
用户:“abc@gmail.com",
通行证:“123”
}
});
sendMail(mailJson,函数(错误,响应){
如果(错误){
console.log(错误);
}否则{
console.log(“发送的消息:+response.Message”);
}
//如果不想再使用此传输对象,请取消对以下行的注释
smtpTransport.close();//关闭连接池,不再发送消息
});

以下建议将非常有用(对于其他用户):

  • mailJson
    是您的配置名为
    mailpoptions
  • 将在承诺中返回结果,这在以异步代码发送电子邮件时非常有用
  • 因此,您的代码如下所示:

    mailOptions = {
        from: "Admin <abc@gmail.com>", // sender address
        to: emailAddress, // list of receivers
        subject: "Hello", // Subject line
        text: "hello", // plaintext body
        html: "<b>Hello</b>" // html body
    }
    
    smtpTransport = nodeMailer.createTransport("SMTP",{
        service: "Gmail",
        auth: {
            user: "abc@gmail.com",
            pass: "123"
        }
    });
    
    return new Promise((resolve, reject) => {
            transporter.sendMail(mailOptions, (error, info) => {
                error ? reject(error) : resolve(info);
            });
        });
    });
    
    mailpoptions={
    发件人:“Admin”,//发件人地址
    收件人:emailAddress,//收件人列表
    主题:“你好”//主题行
    text:“hello”,//纯文本正文
    html:“你好”//html正文
    }
    smtpTransport=nodeEmailer.createTransport(“SMTP”{
    服务:“Gmail”,
    认证:{
    用户:“abc@gmail.com",
    通行证:“123”
    }
    });
    返回新承诺((解决、拒绝)=>{
    transporter.sendMail(邮件选项,(错误,信息)=>{
    错误?拒绝(错误):解决(信息);
    });
    });
    });
    
    如果没有适合您的解决方案

    转到该链接,活动的安全性低于尝试发送邮件

    您的电子邮件地址是字符串吗?马上abc@gmail.com缺少引号,因此传递给sendMail的选项不是mailOptions。这是打字错误吗?@C Blanchard,我现在正在编辑我的整个问题。也许你是对的,我在一个函数中处理这个问题,可能不会将值返回给被调用方。让我用这个检查一下。将返回给您:)我没有返回值。它现在正在工作。谢谢:)