无法使用gmail SMTP

时间:2012-04-25 19:17:56

标签: node.js smtp gmail

我正在尝试使用node_mailer使用gmail smtp。我的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确实帮我调试了错误的正确文本问题。

2 个答案:

答案 0 :(得分:6)

一些事情:

  1. 您编写的代码会抛出解释器错误而不会运行。 (例如,电子邮件地址周围没有引号。)
  2. 该库暂时没有更新。我强烈推荐积极开发且名称相似的Nodemailer库,该库具有gmail SMTP等常用服务的简写。
  3. 完全披露:我向Nodemailer提供了亚马逊SES功能(尽管最近重写的基础架构从0.1.x到0.3.x意味着我没有出现在{{1} },再见了。

    编辑:我仔细研究了你的代码。假设您的实际代码中没有拼写错误,我怀疑以下行是罪魁祸首:git blame

    基本上,回调函数的this.now.successfullySent(result); 你认为它是什么。您需要将this对象缓存到其范围内,方法是将其分配给this之类的变量。 (假设我们没有处理底层库中的问题。)

答案 1 :(得分:3)

用我的密码替换xxx,这段代码适合我 复制并粘贴它,看看它是如何工作的 如果它不适合你,也许它只是偶尔发生的滞后或者(我希望不是)你的ip或你的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')
});