3

我正在尝试使用 gmail smtp node_mailer。我的 nodejs 日志中出现以下错误(使用nodester)。这是我的代码:

var email = require('mailer');
email.send({
    host : "smtp.gmail.com",              
    port : "465",                     
    ssl : true,
    domain : "domain.com",            
    to : "emailId@gmail.com",
    from : "email@gmail.com",
    subject : "You have been registered",
    body: "<B>Hello! This is a test of the node_mailer.</B>",
    authentication : "login",        // auth login is supported; anything else is no auth
    username : /* username */,
    password : /* password */      
    },
    function(err, result){
      if(err){ self.now.error(err); console.log(err); return;}
      else this.now.successfullySent(result);
});

我在堆栈中没有收到任何错误,但没有收到电子邮件。

@work4liberty 和 @David Ellis。感谢您的两个输入,但似乎问题不在于我的服务器代码,我从客户端 javascript 在 emailId 中发送了不正确的值。Nodemailer确实帮助我用错误的正确文本调试问题。

4

2 回答 2

6

几件事:

  1. 您编写的代码将引发解释器错误并且无法运行。(例如,电子邮件地址周围没有引号。)
  2. 该库已经有一段时间没有更新了。我强烈推荐积极开发且名称相似的Nodemailer库,它具有通用服务的简写,例如 gmail 的 SMTP。

完全披露:我为 Nodemailer 贡献了 Amazon SES 功能(尽管最近将底层架构从 0.1.x 重写为 0.3.x 意味着我不再出现在git blame.

编辑:我仔细查看了您的代码。假设您的实际代码中没有拼写错误,我怀疑以下行是罪魁祸首:this.now.successfullySent(result);

基本上,回调函数this并不是想象的那样。您需要this通过将对象分配给像self. (假设我们没有处理底层库中的问题。)

于 2012-04-25T19:58:47.813 回答
2

用我的密码替换 xxx 这段代码对我有用 复制并粘贴它,看看它是如何工作的msg 让 gmail 认为这是垃圾邮件

var email = require('mailer');
email.send({
    host : "smtp.gmail.com",
    port : "465",
    ssl : true,
    domain : "domain.com",
    to : "work4liberty@gmail.com",
    from : "work4liberty@gmail.com",
    subject : "You have been registered",
    body: "<B>Hello! This is a test of the node_mailer.</B>",
    authentication : "login",        // auth login is supported; anything else $
    username : 'work4liberty@gmail.com',
    password : 'xxx'
    },
    function(err, result){
      if(err){ self.now.error(err); console.log(err); return;}
      else console.log('looks good')
});
于 2012-04-25T20:03:10.650 回答