Nodemailer,Gmail:Node Rest API

时间:2018-07-08 19:59:58

标签: rest gmail nodemailer

我开发了Node Rest API。我想通过_id获取单个数据,然后使用nodemailer将该数据传递到指定的gmail地址。我无法正确应用它。这是我的产品控制器API代码:

exports.products_get_product = (req, res, next) => {
  const id = req.params.productId;
  Product.findById(id)
    .select("senderName senderPhone senderEmail pickupAddr receiverName receiverPhone deliveryAddr note _id ")
    .exec()
    .then(doc => {
      console.log("From database", doc);
      if (doc) {

          res.status(200).json({
          product: doc,
          request: {
            type: "GET",
            url: "https://courierapp-test.herokuapp.com/products"
          }

        });
      } else {
        res
          .status(404)
          .json({ message: "No valid entry found for provided ID" });
      }

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

      var mailOptions = {
        from: '',
        to: '',
        subject: doc.note,
        html: '<p>'+ doc.senderName + '</p>'
              '<p>'+ doc.senderPhone + '</p>' +
              '<p>'+ doc.senderEmail + '</p>' +

      };


      transporter.sendMail(mailOptions, function(error, info){
        if (error) {
          console.log(JSON.stringify(error));
        } else {
          console.log('Email sent: ' + JSON.stringify(info.res));
        }
      });

    })
    .catch(err => {
      console.log(err);
      res.status(500).json({ error: err });
    });
};

我已将我的mongoDb登录凭据包含在auth中。当我尝试在本地运行这些命令时,出现控制台错误:

{“代码”:“ ECONNECTION”,“命令”:“ CONN”}

在将它们部署到heroku之后,我的应用程序崩溃了,因此无法在服务器上对其进行检查。请提供有效的解决方案。

1 个答案:

答案 0 :(得分:0)

我相信nodemailer至少要求“收件人”包含一个有效的电子邮件地址。