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", }, });
其中,user
和 pass
分别是你的 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