簡體   English   中英

無法通過node.js中的nodemailer發送電子郵件

[英]Unable to send email via nodemailer in nodejs

我使用以下配置通過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'
}

在此處輸入圖片說明

任何人都可以給我解決方案以盡快解決它嗎?

嘗試添加值為gmail service參數。

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

請參閱如何使用nodemailer發送郵件

注意:請確保進入以下鏈接的安全性降低:

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'
    }
});

您需要做兩件事: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/
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);      
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM