如何在2023年在nodejs中使用gmail发送电子邮件?

bvjveswy  于 2023-08-04  发布在  Node.js
关注(0)|答案(2)|浏览(149)

我需要从我的服务器端发送电子邮件,也就是node js。我浏览了一下如何在node js中用gmail发送电子邮件,但都已经过时了。谷歌去年停用了不太安全的应用程序功能。
然后我找到了Gmail API。我又试着浏览了一下如何用gmail API发送电子邮件,但我没有找到任何有用的东西。尝试阅读gmail API文档,但他们没有给予nodejs的示例(只有java和python)。那么谁能告诉我最新的方法(2023方法)关于如何使用gmail API发送电子邮件?或者至少给予我一个参考。

zzzyeukh

zzzyeukh1#

希望你做得很好..在nodejs中发送电子邮件,你可以使用Nodemailer库..
以下是图书馆文档的链接:https://nodemailer.com/about/
有关SMTP配置,您可以访问以下站点:https://www.lifewire.com/what-are-the-gmail-smtp-settings-1170854
注意:从您要发送电子邮件的邮件帐户生成应用程序密码。正常密码在这里不起作用。
以下是如何生成应用程序密码的链接:https://support.google.com/mail/answer/185833?hl=en

roejwanj

roejwanj2#

在这里,首先安装nodemailernpm i nodemailer),然后

const nodemailer = require("nodemailer");

const transporter = nodemailer.createTransport({
  host: "smtp.gmail.com",
  port: 465,
  secure: true,
  auth: {
    user: process.env.EMAIL_USER,
    pass: process.env.EMAIL_KEY
  }
});

字符串
process.env.EMAIL_USER替换为您的gmail地址,将process.env.EMAIL_KEY替换为您的应用程序密码(将从您的Google帐户>安全> 2FA>应用程序密码生成),然后

async function sendEmail(email, subject, body) {
    const info = await transporter.sendMail({
        from: `"SOME NAME" <SENDER EMAIL>`, // sender address //TODO: update
        to: email, // list of receivers
        subject: subject, // Subject
        text: body, // plain text body
      //   html: "<b>Hello world?</b>", // html body
      }).catch(console.error);

      return info ? info.messageId : null;
}

if(await sendEmail('email@gmail.com', 'subject', 'body')){
   console.log('message sent!');
}

相关问题