如何在 Deno 应用中集成 Nodemailer

Nodemailer 是一个流行的 Node.js 库,用于发送电子邮件。在 Deno 应用中使用 Nodemailer 可以方便地发送电子邮件,例如发送密码重置邮件、欢迎邮件等等。

本篇文章将介绍如何在 Deno 应用中集成 Nodemailer。

安装 Nodemailer

首先,需要安装 Nodemailer。可以使用 Deno 的模块管理器 deno.land/x 安装:

deno install --allow-net --import-map=import_map.json --unstable https://deno.land/x/nodemailer/mod.ts

配置邮件服务

在使用 Nodemailer 之前,需要先配置邮件服务。可以使用各种邮件服务提供商,例如 Gmail、Outlook、SendGrid 等等。

以下是一个使用 Gmail SMTP 服务器的例子:

import { createTransport } from "nodemailer";

const transporter = createTransport({
  host: "smtp.gmail.com",
  port: 587,
  secure: false,
  auth: {
    user: "your-email@gmail.com",
    pass: "your-password",
  },
});

其中,userpass 分别是你的 Gmail 邮箱地址和密码。请注意,为了使用 Gmail SMTP 服务器,需要先在 Google 账户中启用“允许低安全性应用程序访问”。

发送邮件

有了邮件服务的配置之后,就可以发送邮件了。以下是一个发送简单文本邮件的例子:

import { createTransport } from "nodemailer";

const transporter = createTransport({
  host: "smtp.gmail.com",
  port: 587,
  secure: false,
  auth: {
    user: "your-email@gmail.com",
    pass: "your-password",
  },
});

await transporter.sendMail({
  from: "your-email@gmail.com",
  to: "recipient-email@example.com",
  subject: "Hello from Deno!",
  text: "This is a test email sent from Deno.",
});

可以看到,sendMail 方法接受一个对象作为参数,包含邮件的各种信息,例如发件人、收件人、主题、正文等等。

使用模板发送邮件

在实际应用中,通常需要发送包含动态内容的邮件,例如欢迎邮件、密码重置邮件等等。可以使用模板来生成邮件内容。

以下是一个使用 Handlebars 模板引擎发送欢迎邮件的例子:

import { createTransport } from "nodemailer";
import handlebars from "handlebars";
import { readFileStr } from "fs/mod.ts";

const transporter = createTransport({
  host: "smtp.gmail.com",
  port: 587,
  secure: false,
  auth: {
    user: "your-email@gmail.com",
    pass: "your-password",
  },
});

const template = await readFileStr("./welcome-email.hbs");
const compiledTemplate = handlebars.compile(template);

await transporter.sendMail({
  from: "your-email@gmail.com",
  to: "recipient-email@example.com",
  subject: "Welcome to Deno!",
  html: compiledTemplate({ name: "John Doe" }),
});

在此例中,使用了 Handlebars 模板引擎来生成邮件内容。可以将邮件模板存储在文件中,使用 readFileStr 方法读取模板文件内容,然后使用 handlebars.compile 方法编译模板,最后使用 html 属性将编译后的模板作为邮件正文发送。

总结

本篇文章介绍了如何在 Deno 应用中集成 Nodemailer,并发送简单文本邮件和使用模板发送欢迎邮件的例子。希望读者可以通过本文学习到如何在 Deno 应用中发送电子邮件,以及如何使用模板来生成邮件内容。

示例代码:https://github.com/denodev/nodemailer-example

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658ead89eb4cecbf2d486e3f


纠错
反馈