簡體   English   中英

如何使用 nodemailer 發送 gmail

[英]how to send gmail using nodemailer

我正在嘗試使用nodemailer節點模塊發送郵件並像這樣配置。

  ... config.js ...
  smtp: {
    host: "smtp.gmail.com",
    port: 465,
    secure: true,
    auth: {
      user: "***@gmail.com",
      pass: "****"
    }
  }
  ... mail.js ...
  const config = require("../config");
  const nodemailer = require('nodemailer');
  const transporter = nodemailer.createTransport(config.smtp);

  const sendEmail = async (data, res) => {
    // if(!data.to || !data.subject)
    //     return false;
    
    data = { ...data, from: config.smtp.auth.user };
    console.log(data)
    transporter.sendMail(data, (error, info) => {
        console.log(error);
        res.send(error);
    });
    res.send(true)
  }

  module.exports = sendEmail;

  ... controller ...
  router.get('/testEmail', async (req, res) => {
    let emailData = {
      to: "***@gmail.com",
      subject: "Welcome to Musical World",
      content: "test test"
    };
    let result = sendEmail(emailData, res);
    console.log(result)
    // res.send(result);
  })

當我嘗試發送電子郵件時,它會返回

{"code":"EAUTH","response":"535-5.7.8 Username and Password not accepted. Learn more at\n535 5.7.8  https://support.google.com/mail/?p=BadCredentials p25-20020a056638217900b0033c14d2386bsm898629jak.75 - gsmtp","responseCode":535,"command":"AUTH PLAIN"}

所以我做了谷歌搜索,發現這就是為什么我沒有在我的谷歌帳戶中打開不太安全的應用程序。 但是當我去那里時,谷歌說

在此處輸入圖像描述

我嘗試打開less secure apps ,但 G less secure apps功能不可用。

在此處輸入圖像描述

那我該怎么辦?

我終於自己解決了!

從 2022 年 3 月 20 日起,Google 不再支持less secure app功能。 它將幫助其他遇到此問題的開發人員。

所以我們不能只使用emal and password訪問 gmail。 相反,我們必須使用OAuth2來訪問 gmail。

... config.js ...
  smtp: {
    service: "gmail",
    auth: {
      type: "OAuth2",
      user: "*****@gmail.com",
      pass: "******",
      clientId: "********",
      clientSecret: "***********",
      refreshToken: "************"
    }
  }

為此,您的谷歌雲控制台中必須有 OAuth2 客戶端。 這是您可以參考的完整詳細信息。

https://www.freecodecamp.org/news/use-nodemailer-to-send-emails-from-your-node-js-server/

暫無
暫無

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

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