使用 Node.js 发送邮件

Nodejs·服务端开发 · 2023-03-09

Node.js 是一个流行的开发工具,可以帮助您创建高性能和可扩展的应用程序。有时候,您可能需要将电子邮件集成到 Node.js 应用程序中。本文将向您介绍如何使用 Node.js 和 Nodemailer 库发送电子邮件。
nm_logo_200x136.png

步骤 1:安装 Nodemailer

Nodemailer 是一个开源的 Node.js 库,可以发送电子邮件。在开始发送电子邮件之前,您需要使用以下命令安装 Nodemailer:

npm install nodemailer
步骤 2:配置邮件传输器

接下来,您需要配置电子邮件传输器。邮件传输器是一种实现邮件发送的方法(例如,使用 SMTP 或 SendGrid)。您可以使用以下代码进行配置:

import nodemailer, {Transporter} from 'nodemailer';

const transporter: Transporter = nodemailer.createTransport({
    service: 'qq',
    auth: {
        user: 'sender@qq.com',
        pass: 'yourpassword'
    }
});

此处使用 QQ 邮箱服务提供商。您需要替换 sender@qq.comyourpassword 为您自己 QQ 邮箱的凭据。如果您使用其他邮件服务提供商,则需要更新以下值:

  • service: 邮件服务提供商的名称(例如,'hotmail'、'yahoo'、'office365' 等)
  • hostport: SMTP 主机和端口
  • auth: 与 SMTP 服务器进行身份验证所需的凭据(通常为电子邮件地址和密码)

由于 Node.js 的特性,我们需要使用 parse-smtp 流解析器自动从 SMTP 数据包中获取对应信息,修改代码如下:

import nodemailer, {SMTPClient} from "emailjs";

const client = new SMTPClient({user: auth.user, password: auth.pass, host: 'smtp.qq.com'});

client.send(message, function (err, message) {
  console.log(err || message);
});
步骤 3:创建电子邮件

接下来,您需要创建要发送的电子邮件。您可以使用以下代码创建消息:

 const message = {
    from: 'youremail@gmail.com',
    to: 'myfriend@yahoo.com',
    subject: 'Test email',
    text: 'This is a test email sent from Node.js'
};

此处的 fromto 地址应分别设置为您自己和收件人的地址。subject 是电子邮件的主题,而 text 是电子邮件消息的正文。您还可以添加许多其他内容,例如 HTML 正文、附件等。有关详细信息,请参阅 Nodemailer 文档。

步骤 4:发送电子邮件

最后,使用以下代码发送电子邮件:

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

此代码将调用 sendMail() 方法以将消息发送到指定收件人。如果出现错误,则会将错误记录到控制台。否则,将记录一条成功消息。

结论

现在,您已经知道如何使用 Node.js 和 Nodemailer 库发送电子邮件了。请记住,在实际应用程序中,您需要确保正确设置安全性和验证措施,以避免安全漏洞和滥用。

TypeScript NPM Node.js Nodemailer
Theme Jasmine by Kent Liao