返回

使用 Nodemailer 安全发送邮件

前端

使用 Nodemailer 安全、可靠地发送电子邮件

先决条件

踏上使用 Nodemailer 发送电子邮件的旅程之前,您需要确保以下先决条件:

  • Node.js 安装在您的系统中
  • 拥有一个电子邮件帐户,并允许通过 SMTP 协议发送电子邮件
  • 已安装 Nodemailer 库

安装 Nodemailer

安装 Nodemailer 非常简单。在终端或命令提示符中运行以下命令:

npm install nodemailer

设置 SMTP 服务器

SMTP 服务器对于发送电子邮件至关重要。它是将电子邮件从您的计算机传递到收件人邮箱的媒介。

不同的电子邮件服务提供商使用不同的 SMTP 服务器。以下是一些常用选项:

  • Gmail:smtp.gmail.com
  • Outlook:smtp-mail.outlook.com
  • Yahoo:smtp.mail.yahoo.com

创建传输器

Nodemailer 使用传输器来发送电子邮件。传输器包含发送电子邮件所需的关键信息,例如 SMTP 服务器地址、端口号、用户名和密码。

以下代码展示了如何创建传输器:

const nodemailer = require('nodemailer');

// 创建传输器
const transporter = nodemailer.createTransport({
  host: 'smtp.gmail.com',
  port: 587,
  secure: false, // true for 465, false for other ports
  auth: {
    user: 'username@gmail.com', // Your email address
    pass: 'password' // Your password
  }
});

编写电子邮件内容

编写电子邮件内容是向收件人传达信息的过程。以下代码展示了如何创建电子邮件内容:

const mailOptions = {
  from: 'username@gmail.com', // Sender address
  to: 'recipient@example.com', // List of recipients
  subject: 'Hello from Nodemailer', // Email subject
  text: 'Hello world!', // Plain text body
  html: '<h1>Hello world!</h1>' // HTML body
};

发送电子邮件

发送电子邮件是将精心编写的电子邮件内容发送给预期的收件人的时刻。以下代码展示了如何发送电子邮件:

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

附件

Nodemailer 不仅允许您发送文本和 HTML 电子邮件,还允许您附加文件。以下代码展示了如何使用附件:

const mailOptions = {
  from: 'username@gmail.com', // Sender address
  to: 'recipient@example.com', // List of recipients
  subject: 'Hello from Nodemailer', // Email subject
  text: 'Hello world!', // Plain text body
  html: '<h1>Hello world!</h1>', // HTML body
  attachments: [
    {   // filename and content type is derived from path
      path: 'path/to/file.txt'
    },
    {   // filename and content type is provided explicitly
      filename: 'image.png',
      content: Buffer.from('Content of the file'),
      contentType: 'image/png'
    }
  ]
};

安全发送电子邮件

安全至上!为了确保您的电子邮件安全送达收件人,请考虑以下措施:

  • 使用 SSL/TLS 加密
  • 设置强密码
  • 避免在电子邮件中包含敏感信息

常见问题解答

1. 我收不到电子邮件,怎么办?

检查电子邮件地址是否正确无误。如果您在垃圾邮件文件夹中找到了电子邮件,请将发件人地址添加到您的白名单中。

2. 我无法发送电子邮件,怎么办?

验证 SMTP 服务器设置是否正确。检查电子邮件地址和密码是否输入无误。如果所有设置都正确,请联系您的电子邮件服务提供商寻求帮助。

3. 如何使用 Nodemailer 发送 HTML 电子邮件?

在编写电子邮件内容时,在 html 属性中包含 HTML 代码即可。

4. 如何附加文件到电子邮件?

attachments 数组中指定文件的路径或直接提供文件内容和内容类型即可。

5. 如何使用 Nodemailer 调试发送电子邮件的问题?

使用 debug 选项来启用调试信息,并查看控制台输出以获取更多详细信息。

结论

Nodemailer 是一个功能强大、用户友好的库,可以轻松、安全地发送电子邮件。通过遵循本文提供的步骤,您将能够掌握使用 Nodemailer 发送电子邮件的艺术,将您的信息传递给全世界。