【问题标题】:Unable to send email via nodemailer in nodejs无法通过 nodejs 中的 nodemailer 发送电子邮件
【发布时间】:2019-09-02 14:27:17
【问题描述】:

我使用以下配置通过 Nodemailer 发送电子邮件,但无法发送并抛出错误:getaddrinfo ENOTFOUND ssl://smtp.googlemail.com ssl://smtp.googlemail.com:587 at GetAddrInfoReqWrap.onlookup

配置:

host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
    user: 'xxx@gmail.com',
    pass: 'xxxx'
}

谁能尽快给我解决办法?

【问题讨论】:

    标签: javascript jquery node.js nodemailer


    【解决方案1】:

    尝试添加service 参数,值为gmail

    var smtpTransport = nodemailer.createTransport({
        service: 'gmail',
        port: 8000,
        secure: false, // use SSL
        auth: {
            user: 'user@gmail.com',
            pass: 'pass'
        }
    });
    

    参考How to send mail using nodemailer

    【讨论】:

      【解决方案2】:

      注意:确保您对以下链接的安全性较低:

      https://myaccount.google.com/security?pli=1#connectedapps

      然后像这样配置nodemailer

      var smtpTransport = nodemailer.createTransport({
          host: 'smtp.gmail.com',
          port: 465,
          secure: true, // use SSL
          auth: {
              user: 'user@gmail.com',
              pass: 'pass'
          }
      });
      

      【讨论】:

        【解决方案3】:

        你需要做两件事: 1.添加您的服务提供商名称

         let transporter = nodemailer.createTransport({
            service: 'gmail',
            port: 25,
            secure: false,
            auth: {
                   user: 'your_mail_address@gmail.com',
                   pass: 'pass'
                 }
            });
        
        1. 将安全性较低的应用程序的访问权限设置为启用。

        参考以下链接:

        1. https://www.w3schools.com/nodejs/nodejs_email
        2. https://devanswers.co/allow-less-secure-apps-access-gmail-account/

        【讨论】:

          【解决方案4】:
          This works for me. 
          
          var transporter = nodemailer.createTransport({
             host: 'smtp.gmail.com',
             port: 465,
             secure: true,  
             service: 'Gmail',
             auth: {
              user: 'user@gmail.com',
              pass: '***'
             }
          });
          
          var mailOptions = {
            from: SOURCE_EMAIL,
            to: to,
            subject: 'send mail',
            text: 'Your text is here'
          };
          var status = transporter.sendMail(mailOptions, function(error, info){
             console.log('info...',info);
             if (error) {
                console.log(error);       
             } else {
                console.log('Email sent: ' + info.response);      
            }
          });
          

          【讨论】:

            猜你喜欢
            • 2017-05-16
            • 2017-02-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-14
            • 2018-02-01
            • 2020-11-17
            相关资源
            最近更新 更多