📌  相关文章
📜  如何在 Node.js 中使用 nodemailer 发送附件和电子邮件?(1)

📅  最后修改于: 2023-12-03 15:08:43.555000             🧑  作者: Mango

如何在 Node.js 中使用 nodemailer 发送附件和电子邮件?

邮件是我们日常生活和工作中经常使用的工具,而在 Node.js 中,我们可以通过 nodemailer 这个库来实现邮件的发送。

nodemailer 提供了一些功能来创建并发送邮件,其中包括添加附件、HTML 内容、发送电子邮件等等,接下来我们将针对如何在 Node.js 中使用 nodemailer 发送附件和电子邮件做介绍。

安装 nodemailer

在使用 nodemailer 之前,需要先安装该库:

npm install nodemailer
发送电子邮件

发送电子邮件是 nodemailer 的最基本功能,可以使用以下代码:

const nodemailer = require("nodemailer");

const transporter = nodemailer.createTransport({
  service: "gmail",
  auth: {
    user: "你的 Gmail 邮箱地址",
    pass: "你的 Gmail 密码",
  },
});

const mailOptions = {
  from: "发件人名称 <发件人邮箱地址>",
  to: "收件人邮箱地址",
  subject: "邮件主题",
  text: "邮件内容",
};

transporter.sendMail(mailOptions, function (error, info) {
  if (error) {
    console.log(error);
  } else {
    console.log("Email sent: " + info.response);
  }
});

其中,需要使用你的 Gmail 邮箱地址和密码进行身份验证。通过 transporter.sendMail() 来发送邮件,并在回调函数中打印发送的结果。

发送带附件的电子邮件

在 nodemailer 中,添加附件需要用到 attachments 属性,具体代码如下:

const nodemailer = require("nodemailer");
const fs = require("fs");

const transporter = nodemailer.createTransport({
  service: "gmail",
  auth: {
    user: "你的 Gmail 邮箱地址",
    pass: "你的 Gmail 密码",
  },
});

const mailOptions = {
  from: "发件人名称 <发件人邮箱地址>",
  to: "收件人邮箱地址",
  subject: "邮件主题",
  html: "<p>邮件内容</p>",
  attachments: [
    {
      filename: "文件名.jpg",
      path: "/path/to/文件名.jpg",
      cid: "uniq@mail.com", // 可以使用 HTML 中的 cid:cidValue 来引用
    },
  ],
};

transporter.sendMail(mailOptions, function (error, info) {
  if (error) {
    console.log(error);
  } else {
    console.log("Email sent: " + info.response);
  }
});

其中,path 属性指向要添加的附件的路径,filename 属性指定了邮件中看到的附件名称。同时,在 HTML 内容中可以使用 cid 属性来引用此附件。

通过以上代码片段,我们可以学习到如何在 Node.js 中使用 nodemailer 通过电子邮件发送带有附件的邮件,大家可以根据自己的需要进行调整和使用。