使用 SparkPost 与 Node.js 的指南

作为 SparkPost 的开发者倡导者,我编写了许多示例应用程序。我的背景主要是前端开发,因此我最擅长的语言是 JavaScript。多亏了 Node.js,我的后端开发能力也还不错。这是否意味着我现在是全栈开发者?

作者

类别

电子邮件

使用 SparkPost 与 Node.js 的指南

作为 SparkPost 的开发者倡导者,我编写了许多示例应用程序。我的背景主要是前端开发,因此我最擅长的语言是 JavaScript。多亏了 Node.js,我的后端开发能力也还不错。这是否意味着我现在是全栈开发者?

作者

类别

电子邮件

使用 SparkPost 与 Node.js 的指南

作为 SparkPost 的开发者倡导者,我编写了许多示例应用程序。我的背景主要是前端开发,因此我最擅长的语言是 JavaScript。多亏了 Node.js,我的后端开发能力也还不错。这是否意味着我现在是全栈开发者?

作者

类别

电子邮件

Node.js 简介

作为 SparkPost 的开发者倡导者,我编写了很多示例应用程序。我的背景主要是前端开发,因此我最擅长的语言是 JavaScript。多亏了 Node.js,我现在也是一名不错的后端开发者。这意味着我现在是一个全栈开发者吗?无论如何,我认为我们需要一个出色的 SparkPost 客户端库来支持 Node.js,所以我直接参与其中,成为了一名贡献者 (甚至在我被雇用之前).

允许我帮助您开始在您的 Node.js 项目中使用 SparkPost 发送电子邮件。


安装与设置

我假设您已经 安装了 Node.js。因为我们遵循 Node.js 长期支持 (LTS) 计划,所以您需要运行版本 4 或更高。您可以在终端窗口中使用 `node –version` 命令查看您正在运行的版本。

让我们创建一个新的 npm 项目。如果您已经有一个,可以跳过这一部分。

> mkdir sparkpost-test > cd sparkpost-test > npm init --yes

这将创建一个新项目并接受所有默认选项。您也可以选择运行 `npm init` 并回答所有提示。

现在我们可以安装 node-sparkpost

> npm install sparkpost --save

安装后,您可以导入并创建 SparkPost 类的实例:

const SparkPost = require('sparkpost') const client = new SparkPost('您的 API 密钥')

避免将 API 密钥放入代码是一种良好实践。我们强烈建议将其存储在代码之外,因此我们设置了客户端库以检测 SPARKPOST_API_KEY  环境变量。


发送电子邮件

现在您已经有了 SparkPost 实例,准备发送邮件。发送有很多选项可供选择,但让我们从一个简单的示例开始。以下是如何向单个收件人发送电子邮件并指定内联内容:

client.transmissions.send({ content: { from: 'test@your-sending-domain.com', subject: '来自 node-sparkpost 的问候', html: '<p>Hello world</p>' }, recipients: [ {address: 'someone@somedomain.com'} ] }) .then(data => { console.log('哇哦!您刚刚发送了第一封邮件!') console.log(data) }) .catch(err => { console.log('哎呀!出错了') console.log(err) })

注意:这个例子使用了 Promises,但别担心。我们也 支持回调函数.

使用 transmissions 还有更多选项,包括指定存储的模板或收件人列表、抄送和密送、添加附件、指定活动、使用替换数据等。查看 示例Transmissions 资源的文档Transmissions API 文档以获取更多信息。


额外奖励:使用 Nodemailer 发送电子邮件

Nodemailer 是一个流行的 Node.js 库,使发送邮件 “轻而易举”。对于选择使用此库的您,我们创建了 用于 Nodemailer 的 SparkPost 传输。您需要在项目中安装 nodemailer 和 nodemailer-sparkpost-transport 包。

> npm install nodemailer nodemailer-sparkpost-transport --save

现在您可以创建一个 nodemailer 传输实例:

const nodemailer = require('nodemailer') const sparkPostTransport = require('nodemailer-sparkpost-transport') const transporter = nodemailer.createTransport(sparkPostTransport({ 'sparkPostApiKey': process.env.SPARKPOST_API_KEY }))

 

请注意我如何从环境变量中读取 API 密钥。将其直接放入代码中仍然是一种最佳实践。

可以传递给 SparkPost 传输的选项有很多,例如活动 ID 和信息是否为交易信息。请查看 README.md 以获取所有选项。

以下是如何使用 Nodemailer 发送上述相同消息:

transporter.sendMail({ from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: '来自 nodemailer-sparkpost-transport 的问候', html: '<p>Hello world</p>' }, (err, info) => { if (err) { console.error(err); } else { console.log(info); } })


双重奖励:使用 notif.me 发送电子邮件

我们都知道电子邮件是沟通的王者,但有时您希望能够通过多种渠道与人联系。 notif.me 是一个 Node.js 库,用于发送各种事务性消息。无论您希望发送电子邮件、短信、推送消息还是网页推送,您都可以轻松做到。它还具有多供应商的内置故障和轮换策略。我们最近与创作者合作构建了 SparkPost 提供者。您需要在项目中安装 `notifme-sdk` 包。

> npm install notifme-sdk --save

现在您可以使用 SparkPost 提供者创建 notifme 实例:

const NotifmeSdk = require('notifme-sdk').default const notifmeSdk = new NotifmeSdk({ channels: { email: { providers: [{ type: 'sparkpost', apiKey: process.env.SPARKPOST_API_KEY, }] } } })

再次提醒,我们从环境变量中提取 API 密钥。我们已经说了三次 — 这很重要。🙂

现在让我们重复这个示例,这次使用 notif.me:

notifmeSdk.send({ email: { from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: '来自 SparkPost notif.me 提供者的问候', html: '<p>Hello world</p>' } }).then(console.log)

使用起来非常简单,我建议查看 其他功能。

在 Node.js 中没有错误的方式

在使用 Node.js 发送电子邮件时,您有许多选择。我们努力使其尽可能无痛。

Sign up

为营销、支持和财务提供的人工智能驱动平台

点击 "获取演示" 即表示您同意 Bird's

Sign up

为营销、支持和财务提供的人工智能驱动平台

点击 "获取演示" 即表示您同意 Bird's

Sign up

为营销、支持和财务提供的人工智能驱动平台

点击 "获取演示" 即表示您同意 Bird's

Channels

Grow

Engage

Automate

APIs

Resources

Company

Socials

生长

管理

自动化

生长

管理

自动化