【问题标题】:Setting up stmp mail using nodejs(nodemailer)使用 node js(nodemailer) 设置 smtp 邮件
【发布时间】:2018-12-16 21:46:32
【问题描述】:

我正在尝试使用简单的 nodejs 应用程序发送电子邮件。但我遇到了一个错误 错误是:

错误:无效登录:534-5.7.14 请通过您的网络浏览器登录,然后 534-5.7.14 然后再试一次。 534-5.7.14 了解更多信息 534 5.7.14 https://support.google.com/mail/answer/78754 22-v6sm29249729pfl.126 - gsmtp 在 SMTPConnection._formatError (C:\Users\USER\Desktop\codeworkr\node_modules\nodemailer\lib\smtp-connection\index.js:606:19) 在 SMTPConnection._actionAUTHComplete (C:\Users\USER\Desktop\codeworkr\node_modules\nodemailer\lib\smtp-connection\index.js:1335:34) 在 SMTPConnection._responseActions.push.str (C:\Users\USER\Desktop\codeworkr\node_modules\nodemailer\lib\smtp-connection\index.js:366:26) 在 SMTPConnection._processResponse (C:\Users\USER\Desktop\codeworkr\node_modules\nodemailer\lib\smtp-connection\index.js:762:20) 在 SMTPConnection._onData (C:\Users\USER\Desktop\codeworkr\node_modules\nodemailer\lib\smtp-connection\index.js:558:14) 在 TLSSocket._socket.on.chunk (C:\Users\USER\Desktop\codeworkr\node_modules\nodemailer\lib\smtp-connection\index.js:510:47) 在 emitOne (events.js:116:13) 在 TLSSocket.emit (events.js:211:7) 在 addChunk (_stream_readable.js:263:12) 在 readableAddChunk (_stream_readable.js:250:11) 在 TLSSocket.Readable.push (_stream_readable.js:208:10) 在 TLSWrap.onread (net.js:597:20)

我的代码是这样的:

var nodemailer = require('nodemailer');

var transporter = nodemailer.createTransport({
  service: 'gmail',
  secure: false,
 // port: 25,
  auth: {
    user: 'surendrap7208@gmail.com',
    pass: ''
  }
 /* tls: {
    rejectUnauthorized: false
  }*/
});



var mailOptions = {
  from: 'surendrap7208@gmail.com',
  to: 'surendrap720@gmail.com',
  subject: 'Sending Email using Node.js',
  text: 'Hello'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);=
  }

    });

出于安全考虑,我已删除密码。

【问题讨论】:

    标签: node.js smtp nodemailer


    【解决方案1】:

    仔细检查您的凭据,并且您还需要在 gmail 中允许不太安全的应用程序。

    1) 转至https://myaccount.google.com/lesssecureapps

    2) 启用不太安全的应用选项

    【讨论】:

      【解决方案2】:

      我有另一个解决方案。如果您出于安全目的想删除密码,那么您也可以使用我的解决方案。

      首先,您需要一些发件人帐户凭据,您可以从这里创建: https://console.developers.google.com/projectselector/apis/credentials?supportedpurview=project

      Node.js、Nodemailer、SMTP 问题

      这是我的测试代码 [file:server.js]

      //start server
      var http = require('http');
      // Create a Transport instance using nodemailer
      var nodemailer = require('nodemailer');
      
      var smtpTransport = nodemailer.createTransport({
          host: "smtp.gmail.com",
          auth: {
              type: "OAuth2",
              user: "sender_email_id",
              clientId: "YOUR_CLIENT_ID",
              clientSecret: "YOUR_CLIENT_SECRET",
              refreshToken: "YOUR_REFRESH_TOKEN"
            }
      });
      
      var htmlBody = '<h2>Hello Body</h2>';
      // Setup mail configuration
      var mailOptions = {
          from: 'serder_email_id', // sender address
          to: 'recipent_email_id', // list of receivers
          subject: 'TEST SUBJECT', // Subject line
          text: 'Hello Body', // plaintext body
          html: htmlBody // html body
        };
      
      var app = http.createServer(function (req, res) {
          // send mail
          smtpTransport.sendMail(mailOptions, function(error, info) {
              res.writeHead(200, {'Content-Type': 'text/html'});
              if (error) {
                  console.log('error', error)
                  res.write('Error');
                  res.end();
              } 
              console.log('Message %s sent: %s', info.messageId, info.response);
              smtpTransport.close();
              res.write('Email sent');
              res.end();
          });
      }).listen(3000); 
      

      【讨论】:

      • 如果您在我的代码中遇到任何运行时问题。那么请告诉我
      • 虽然这可能会回答问题,但最好添加一些关于此答案如何有助于解决问题的描述。请阅读How do I write a good answer了解更多信息。
      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2020-03-14
      相关资源
      最近更新 更多