返回

Nodemailer:让QQ邮箱邮件发送更轻松!

前端

使用 Nodemailer 简化 QQ 邮箱邮件发送

简介

Node.js 是一个备受推崇的 JavaScript 运行时环境,在开发服务器端应用程序方面大显身手。当涉及到邮件服务时,Nodemailer 脱颖而出,成为一个强大而全面的解决方案。借助 Nodemailer,您可以轻松实现 QQ 邮箱邮件的发送和接收,包括附件、抄送和 HTML 格式等功能。

安装和引入 Nodemailer

首先,在您的终端中输入以下命令安装 Nodemailer:

npm install nodemailer

安装完成后,在您的 JavaScript 文件中引入 Nodemailer:

const nodemailer = require('nodemailer');

创建 SMTP 传输器

要连接到 QQ 邮箱服务器,需要创建一个 SMTP 传输器。以下代码演示了如何创建:

const transporter = nodemailer.createTransport({
  host: 'smtp.qq.com',
  port: 465,
  secure: true, // 使用 SSL
  auth: {
    user: '您的QQ邮箱',
    pass: '您的QQ邮箱密码'
  }
});

准备邮件内容

接下来,准备邮件内容,包括发件人、收件人、主题、正文和附件等信息:

const mailOptions = {
  from: '您的QQ邮箱',
  to: '收件人邮箱',
  subject: '邮件主题',
  text: '邮件正文', // 纯文本内容
  html: '<b>邮件正文</b>', // HTML格式内容
  attachments: [
    {
      filename: '附件名称',
      path: '附件路径'
    }
  ],
  cc: '抄送邮箱' // 抄送邮箱
};

发送邮件

最后一步是发送邮件。您可以使用以下代码:

transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    console.log(error);
  } else {
    console.log('邮件发送成功');
  }
});

示例代码

以下是一个完整的示例,演示了如何发送带附件和抄送的 HTML 格式 QQ 邮箱邮件:

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  host: 'smtp.qq.com',
  port: 465,
  secure: true,
  auth: {
    user: '您的QQ邮箱',
    pass: '您的QQ邮箱密码'
  }
});

const mailOptions = {
  from: '您的QQ邮箱',
  to: '收件人邮箱',
  subject: '邮件主题',
  text: '邮件正文',
  html: '<b>邮件正文</b>',
  attachments: [
    {
      filename: '附件名称',
      path: '附件路径'
    }
  ],
  cc: '抄送邮箱'
};

transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    console.log(error);
  } else {
    console.log('邮件发送成功');
  }
});

常见问题解答

1. 如何设置抄送?

使用 cc 字段设置抄送,该字段接受一个电子邮件地址或地址列表。

2. 如何附加文件?

使用 attachments 数组附加文件。每个附件对象应包含 filenamepath 属性。

3. 如何使用 HTML 格式?

mailOptions 对象中使用 html 属性来设置 HTML 格式的内容。

4. 如何设置发件人姓名?

可以使用 from 字段设置发件人姓名,该字段接受一个字符串,例如 "发件人姓名 <发件人邮箱>”。

5. 如果发送失败怎么办?

如果发送失败,sendMail 回调函数将返回一个 error 对象,其中包含错误详细信息。