NodeMailer没有定义的收件人

时间:2016-08-10 18:41:12

标签: node.js nodemailer

尝试使用nodemailer从node.js服务器发送电子邮件时,出现以下错误:

ERROR: Send Error: No recipients defined

我的代码如下:

客户方:

var mailData = {
        from: "myemail@gmail.com",
        to: "someoneelse@something.com",
        subject: "test",
        text: "test email"
    };

  $.ajax({
        type: 'POST',
        data: mailData,
        contentType: 'application/json',
        url: 'http://localhost:8080/sendEmail',
        success: function(mailData) {
            console.log('successfully posted to server.');
        }
    });

服务器端:

var nodemailer = require('nodemailer');

app.post('/sendEmail', function(mailData) {

   var transporter = nodemailer.createTransport({
       service: 'gmail',
       auth: {
           user: 'myemail@gmail.com',
           pass: 'mypassword'
       },
   });

   transporter.sendMail(mailData, function(error, info) {
       if (error) {
           console.log(error);
           return;
       }
       console.log('Message sent');
       transporter.close();
   });

});

这与nodemailer文档一致,并且SMTP握手总是成功完成,因此我知道这不是传输器对象的问题。

1 个答案:

答案 0 :(得分:11)

当赋予to方法的对象中的键sendMail的值为空时,会发生此类错误。我们认为这意味着发生了错误,并且您在服务器端获得的数据与在客户端发送的数据相同。

另外,我建议您检查是否在服务器端操作中访问了良好的变量。可能会以不同的方式访问POST参数 - 请在您的框架文档中查看。

例如在HapiJS中,我以这种方式检索POST参数:

exports.someAction = function (request, reply) {
    var postParams = request.payload
}