如何从 Mailchimp 事务 API 迁移到 SendGrid

已发表: 2016-02-26

2016 年,Mandrill(现称为 Mailchimp Transactional API)成为 Mailchimp 的独家附加服务。 这意味着只有 Mailchimp 月度会员才能访问 Mandrill 的电子邮件交易功能。 对于其他用户,他们必须要么选择另一个平台,要么选择为他们并不总是需要的 Mailchimp 帐户付费。

我们当时了解到,许多客户会寻找可以有效发送电子邮件的替代提供商。 Twilio SendGrid 希望帮助使该过程尽可能顺利。

从 Mailchimp 事务 API 迁移到 SendGrid

作为严格的附加组件,Mailchimp Transactional API 未设置为以您业务所需的规模可靠地发送电子邮件。 但在 Twilio SendGrid,我们是可靠、安全的电子邮件递送领域的领导者,每月为我们的主要发件人处理超过 1000 亿封电子邮件,包括 Uber、Airbnb 和 Spotify。

在本教程中,我们将介绍使用 Twilio SendGrid 发送电子邮件时可以预期的主要优势。 我们的分步迁移指南将确保顺利和简化过渡。

对于那些寻找所有 SMTP、API 和电子邮件相关查询的答案的人来说, Twilio SendGrid 文档是最佳资源。 在深入了解移动邮件和进行 API 调用的更具体细节之前,这是一个很好的起点。

但首先,如果您正在寻找与某些 Mailchimp Transactional API 功能等效的 Twilio SendGrid,下表可以提供帮助:

SendGrid 术语Mailchimp 事务 API 术语
换人合并变量
类别标签
自定义参数元数据
子用户子帐户
压制拒绝
X-SMTPAPI X-MC-*
动态模板模板

获取 API 密钥

首先,您需要一个 Twilio SendGrid 帐户。 然后,您需要创建一个用于发送的 API 密钥。 如果您已登录您的帐户,请转到设置 → API 密钥或使用此链接为每个不同的应用程序使用不同的 API 密钥是一种明智的安全做法。 您还可以通过启用或禁用单个端点的读取或写入访问权限来定义 API 密钥的权限。 目前,您只需要一个对 Mail Send 具有完全访问权限的人。 (注意:您必须先通过配置,然后才能创建 API 密钥。)

API 库

我们有许多官方支持的 API 库,可进一步优化电子邮件发送过程。 如果您在迁移过程中重写任何代码或重构与电子邮件服务提供商 (ESP) 的通信方式,那么现在是利用以下库之一来加速集成的好时机:

  • sendgrid-csharp – 官方 C# 库
  • sendgrid-go – Go 官方库
  • sendgrid-java – 官方 Java 库
  • sendgrid-nodejs – 官方 Node.js 库
  • sendgrid-perl – Perl 官方库
  • sendgrid-php – 官方 PHP 库
  • sendgrid-python – 官方 Python 库
  • sendgrid-ruby – Ruby 官方库
  • ti.sendgrid – 官方 Titanium 包装器

SMTP

如果您不使用我们的库之一并通过简单邮件传输协议或 SMTP 发送,那么您应该知道一些差异。 要在通过 SMTP 发送时进行身份验证,请提供字符串“apikey”作为 SMTP 用户名,并使用您的 API 密钥作为密码。 然后,将您的主机名指向 smtp.sendgrid.net。

您可以在端口 25、2525 和 587 上通过未加密或 TLS 使用 SMTP 进行连接。或者,您也可以通过端口 465 上的 SSL 进行连接。通常,我们建议使用端口 587,因为它往往会导致与托管服务提供商的问题最少.

自定义通过 SMTP 发送的电子邮件的机制是我们的X-SMTPAPI标头。 此标头将允许您定义替换、发送批量邮件合并样式请求以及控制对您的发送有效的过滤器(如点击跟踪)。

HTTP

发送电子邮件的主要端点是mail.send端点。 您可以通过授权标头验证对此端点的请求,并将您的 API 密钥显示为不记名令牌。 在我们的文档中找到更详细的示例

个性化允许您为每条消息定义收件人和元数据,例如用于自定义内容的替换值或用于将消息与用户 ID 或订单号相关联的 custom_args。 有几个常见用例的个性化示例。 您还可以找到cURL 示例调用

可以通过tracking_settings 和 mail_settings 参数配置点击跟踪等功能

对于通过 HTTP 发送的附件,以类似于 Mailchimp Transactional API 的方式处理它们,其中内容被编码为 Base64 并与多用途 Internet 邮件扩展或 MIME 信息一起直接嵌入 JSON 有效负载中,如下所示

请注意,Twilio SendGrid 的 mail.send 端点是完全异步的。 我们将接受该请求(只要格式正确)并尝试尽快处理其邮件递送。 Mailchimp Transactional API 允许同步执行少于 10 封电子邮件的请求。 但是,Twilio SendGrid 不提供同步模式。

您还可以使用“send_at”参数最多提前 72 小时安排发送。

网络挂钩

Twilio SendGrid 提供了两个 webhook:用于发布实时事件的Event Webhook用于接收电子邮件并以编程方式响应它们Inbound Email Parse Webhook数据形状和有效负载与 Mailchimp Transactional API 提供的有点不同——Twilio SendGrid 没有与“同步”网络挂钩的等效项。

非电子邮件 API 端点

对于不发送电子邮件的 API 端点,请查看API v3 概述 在大多数情况下,我们使用直观的 HTTP 方法和响应代码,并对调用实施速率限制。 尽管没有停止支持它的时间表,API v2 仍然最低限度地可用。 然而,所有新的集成都应该倾向于 v3。 API v3 身份验证可通过带有 Bearer token 的身份验证标头访问

迁移到 Twilio SendGrid 常见问题解答

问:你们支持交易电子邮件的模板吗?

答:是的——而且模板是动态的! Twilio SendGrid 的事务模板具有对 Handlebars 语法的本机支持。 除了基本的替换和替换之外,您还可以使用枚举/迭代列表、利用条件等。 要了解有关我们模板的更多信息,请单击此处

问:我是否可以在不发送电子邮件的情况下测试我的电子邮件?

答:通过 HTTP 发送电子邮件时,您可以启用沙盒模式还有一个“接收器”地址可用于测试目的。

问:是否可以将我的 IP 地址/发件人信誉转移到 Twilio SendGrid?

答:我们无法迁移 IP 或声誉,但可以帮助您自动为您预热新 IP

问:Twilio SendGrid 是否支持强制 TLS?

答:当然。 我们的接收服务器支持 TLS 并丢弃不符合要求的传出消息。

问:我可以让我的收件人定义他们想要接收的电子邮件类型吗?

答:是的! 给予收件人更多控制权可以让您将电子邮件发送给真正需要它们的订阅者,从长远来看,这对每个人都更好。 查看我们的退订群组了解更多信息。

问:您可以根据请求向多个收件人发送电子邮件吗?

答:是的。 使用个性化的 API v3 客户每个请求最多可以包含 1,000 个收件人。 SMTP 用户每封邮件最多可以包含 10,000 个收件人,但我们通常建议您在每个请求中使用 1,000 个收件人。

了解有关从 Mailchimp Transactional API 切换到 Twilio SendGrid 的更多信息