
作为 SparkPost 的开发者倡导者,我编写了许多示例应用程序。我的背景主要是前端开发,因此我最擅长的语言是 JavaScript。多亏了 Node.js,我的后端开发能力也还不错。这是否意味着我现在是全栈开发者?
Business in a box.
探索我们的解决方案。
与我们的销售团队交谈
Node.js 简介
作为SparkPost的开发者倡导者,我编写了许多示例应用程序。我的背景主要是前端开发,因此我最强的语言是JavaScript。多亏了Node.js,我也是一名不错的后端开发人员。这是否意味着我现在是一个全栈开发人员了?无论如何,对我来说,拥有一个出色的SparkPost客户端库对Node.js来说是很重要的。所以,我立即投入进去,并成为了一名贡献者(甚至在我被聘用之前)。
请让我帮助您在您的Node.js项目中开始使用SparkPost发送电子邮件。
安装 & Setup
发送 Email
现在您有一个 SparkPost 实例,可以准备发送了。发送有很多可用选项,但让我们从一个简单的例子开始。以下是如何向单个收件人发送电子邮件,并指定内联内容的方法:
client.transmissions.send({ content: { from: 'test@your-sending-domain.com', subject: 'Hello from node-sparkpost', html: '<p>Hello world</p>' }, recipients: [ {address: 'someone@somedomain.com'} ] }) .then(data => { console.log('Woohoo! You just sent your first mailing!') console.log(data) }) .catch(err => { console.log('Whoops! Something went wrong') console.log(err) })
注意:此示例使用 Promises,但别担心。我们也支持回调函数。
传输有更多可用选项,包括指定存储模板或收件人列表、抄送和密送、添加附件、指定活动、使用替换数据,等等。查看示例、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 Key。将其直接放入代码中仍然不是一个好习惯。
SparkPost 传输可以传入几个选项,比如活动 id 以及消息是否为事务性。查看README.md了解所有选项。
以下是如何使用 Nodemailer 发送上述相同邮件:
transporter.sendMail({ from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: 'Hello from nodemailer-sparkpost-transport', html: '<p>Hello world</p>' }, (err, info) => { if (err) { console.error(err); } else { console.log(info); } })
双重奖励:使用 notif.me 发送 Email
我们都知道电子邮件是沟通之王,但有时您希望能够通过多个渠道与人联系。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 Key。我们已经说了三次—这非常重要。🙂
现在让我们重复这个例子,这次使用 notif.me:
notifmeSdk.send({ email: { from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: 'Hello from the SparkPost notif.me provider', html: '<p>Hello world</p>' } }).then(console.log)
它真的很容易使用,我建议查看其他功能。
没有错误的方式去 Node
当涉及使用Node.js发送电子邮件时,你有很多选择。我们已经尽力让它尽可能简单。