node.js - 无法使用 gmail SMTP

标签 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 确实帮助我调试了正确文本错误的问题。

最佳答案

几件事:

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

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

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

基本上,回调函数的 this 不是您认为的那样。您需要通过将 this 对象分配给 self 之类的变量来将其缓存在其范围内。 (假设我们没有处理底层库中的问题。)

关于node.js - 无法使用 gmail SMTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10322304/

相关文章:

html - 我可以在 HTML 电子邮件中使用 columns 标签吗

javascript - Node JS 加密 "Bad input string"

javascript - 如何禁用 winston elasticstack 客户端和传输生成的调试控制台输出?

javascript - 如何使用nodejs http修复 "'监听器参数必须是一个函数

javascript - 在属性名称中搜索带有冒号的 xpath 表达式会抛出异常(node.js elementtree 模块)

node.js - 无法从 emailjs 和 smtp 服务器获取电子邮件 - Nodejs

email - Powershell 脚本无法发送给多个收件人

java - 如何在邮件服务器上测试安全 SMTP 邮件服务

Python:发送电子邮件时,始终在子句中阻止:smtpserver = smtplib.SMTP ("smtp.gmail.com",587)

javascript - 我如何移动选择多个复选框,如 GMail?