2016-09-28 59 views
1

我在我的网页上有一个nodemailer功能,我试图在本地进行测试。 在我的package.json中,版本是"nodemailer": "0.7.1"。 在我的路由文件我有:无法解释的Nodemailer错误

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: "[email protected]", 
    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); 
      }); 
    }); 
}); 

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

的问题是,邮件实际上并没有到达收件箱,并在控制台MSG(火狐)读取简单"syntax error send:1:1"

如果我期待到请求的网络,我可以看到状态码是200 OK,但'响应'选项卡只说“错误”,没有任何解释。

我无法调试这个没有任何信息,所以我希望有人会有一个想法,为什么它不工作。它应该工作的方式,因为我有另一个网站,它的作品完美,基本上从那里复制粘贴...

谢谢。

回答

1

原来的问题出自Nodemailer STMP功能的数据字段。具体而言,我只是忽略了'to:[email protected]'参数。

我能够通过对服务器端的console.log调试这个问题,并最终撞到这个职位这给了我的想法,再次检查功能域:Sending email from local host with Nodemailer

在任何情况下,加入了“以:'除了'来自:'做了诀窍。