如何在Node.js里发送电子邮件?

2021-08-30大约2分钟

发送电子邮件是个软件系统里很常用的一个功能,虽然目前短信通知也很流行,但是邮件仍然是一个不可缺少的部分。

在Node.js里发送电子邮件,也很简单,我们只要用Nodemailer这个库就能实现了。

const nodemailer = require("nodemailer");

// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
    host: "你的SMTP服务器地址", // 需要替换的部分
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
        user: 'SMTP用户名',   // 需要替换的部分
        pass: 'SMTP密码',     // 需要替换的部分
    },
});

// async..await is not allowed in global scope, must use a wrapper
async function sendMail() {
  // send mail with defined transport object
  let info = await transporter.sendMail({
    from: '乐码范👻" <foo@lema.fun>', // sender address
    to: "bar@lema.fun, baz@lema.fun", // list of receivers
    subject: "Hello ✔", // Subject line
    text: "Hello world?", // plain text body
    html: "<b>Hello world?</b>", // html body
  });

  console.log("Message sent: %s", info.messageId);
  // Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
}

sendMail().catch(console.error);

我们只需要把上面transporter里需要替换的部分用配置里的值,然后sendMail()里的发件人(from)、收件人(to)、主题(subject)等内容替换成自己的内容就可以了。