Nodemailer错误,无解释

时间:2016-09-28 12:10:53

标签: jquery gmail response nodemailer

我的网页上有一个nodemailer功能,我试图在本地测试。 在我的package.json中,版本为"nodemailer": "0.7.1"。 在我的路由文件中,我有:

var express = require('express');
var router = express.Router();
var nodemailer = require("nodemailer");


router.get('/', function(req, res, next) {
  res.render('home');
});

var smtpTransport = nodemailer.createTransport("SMTP",{
  service: "Gmail",
  auth: {
    user: "example@gmail.com",
    pass: "examplePass"
  }
});

router.get('/send',function(req,res){
    var mailOptions={
       from : req.query.from
    }
      console.log(mailOptions);
      smtpTransport.sendMail(mailOptions, function(error, response){
    if (error){
      console.log(error);
      res.end("error");
    } else {
      console.log("Message sent: " + response.message);
      res.end("sent");
    }
  });
});

module.exports = router;

在我的页面中,我在底部有一个脚本:

$(document).ready(function(){
  var to,from;
  $(".signup").on("click", function(){
    from = $("#search").val();

    $.get("/send",
          {from:from},
          function(data){
          alert("Thanks :) We'll keep you updated.");
          location.reload(true);
          });
    });
});

我测试了一些东西,当我点击注册按钮时,我确实得到了'来自'字段,以及警报消息,并在我批准警报后重新加载页面。

问题是邮件实际上没有到达收件箱,而控制台msg(firefox)只读取"syntax error send:1:1"

如果我查看请求的网络,我可以看到状态代码是200 OK,但是'响应'标签只显示"错误",没有任何解释。

我无法在没有任何信息的情况下对此进行调试,因此我希望有人能够了解它为什么不起作用。它应该顺便说一句,因为我有另一个网站,它的工作完美,并且基本上从那里复制粘贴......

感谢。

1 个答案:

答案 0 :(得分:1)

原来问题出在Nodemailer STMP功能的数据字段中。具体来说,我只是省略了'to:email@gmail.com'参数。

我能够通过服务器端的console.log调试此问题并最终碰到这篇文章,这让我想到了再次检查函数字段:Sending email from local host with Nodemailer

在任何情况下,除了'from:'之外还添加'to:'就可以了。