如何从 Mailgun 迁移到 SendGrid

已发表: 2018-11-10

如果 Mailgun 是您当前的电子邮件服务提供商,并且您希望进行更改,那么此操作指南将通过突出显示两种服务之间的差异来帮助您迁移到 SendGrid。

如果您想在开始之前四处看看,在深入了解 API 参考和详细信息之前,请查看包含大量资源的 SendGrid 文档。

术语

如果您正在寻找与某些 Mailgun 功能等效的 SendGrid,下表将有所帮助:

SendGrid 术语Mailgun 术语
替换/部分替代数据
类别标签
独特的参数X-Mailgun-变量
多个凭证多用户访问
子用户Mailgun 不提供离散的子用户。
压制压制
X-SMTPAPI Mailgun 为每个配置选项使用离散的 X-Header,例如 X-Mailgun-Recipient-Variables
入站解析 Webhook 路线
事件网络钩子网络挂钩
营销活动没有等价物

获取 API 密钥

首先,您需要一个 SendGrid 帐户。 接下来,您应该创建一个用于发送的 API 密钥。 转到Settings -> API keys ,或使用此链接。 SendGrid 和安全最佳实践是为每个不同的应用程序使用不同的 API 密钥。 API 密钥具有精细的权限,因此您可以启用或禁用各个端点的读取或写入访问权限。 确保您创建的 API 密钥对Mail Send具有完全访问权限。 (注意:您的帐户必须先通过配置,然后才能创建 API 密钥。)

API 库

我们有许多官方支持的 API 库,可以让我们的客户更轻松地进行集成。 如果您正在重写任何代码,或者在迁移过程中重构与 ESP 的通信方式,那么现在是评估这些库的好时机:

  • sendgrid-csharp – 官方 C# 库
  • sendgrid-go – 官方 Go 库
  • sendgrid-java – 官方 Java 库
  • sendgrid-nodejs – 官方 NodeJS 库
  • sendgrid-php – 官方 PHP 库
  • sendgrid-python – 官方 Python 库
  • sendgrid-ruby – 官方 Ruby 库

SMTP

如果您通过 SMTP 发送,您应该注意一些差异。 要进行身份验证,请提供字符串“apikey”作为 SMTP 用户名,并使用您的 API 密钥作为密码。 然后将您的主机名指向smtp.sendgrid.net

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

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

HTTP

发送电子邮件的主要端点是 Mail 端点。 对此端点的请求通过授权标头进行身份验证,您的 API 密钥作为不记名令牌提供。 您可以在我们的文档中找到更详细的示例。

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

点击跟踪等功能通过 tracking_settings 和 mail_settings 参数进行配置。 您还可以使用“send_at”参数最多提前 72 小时安排发送。

通过 HTTP 发送的附件的处理方式与 Mailgun 不同。 Mailgun 需要包含要附加的文件的 multipart/form-data POST。 使用 SendGrid,内容被编码为 Base64 并与 MIME 信息一起直接嵌入 JSON 有效负载中,将您的整个消息保持在相同的有效负载中并简化您的 HTTP 请求。 您可以在我们的文档教室的以下部分阅读有关包含附件的更多信息。

网络挂钩

SendGrid 提供了两个 webhook:用于发布实时事件的 Event Webhook,以及用于接收电子邮件并以编程方式响应它们的 Inbound Parse Webhook。 数据形状和有效负载与 Mailgun 提供的有点不同。 我们目前也不支持将入站消息路由到不同的回调 URL; 您需要在代码中而不是在 API 级别处理这种逻辑。

非电子邮件 API 端点

对于不发送电子邮件的 API 端点,请查看 API v3 概述。 在大多数情况下,我们使用直观的 HTTP 方法和响应代码,并对调用实施速率限制。 API v2 已被弃用,但没有停止支持它的时间表。 所有新的集成都应该首选 v3。 API v3 身份验证是通过带有不记名令牌的身份验证标头完成的。

营销活动

我们拥有一个功能齐全的平台,用于管理联系人列表、创建和设计模板、A/B 测试不同的模板以及安排活动。 这一切都包含在一个易于非开发人员使用的 UI 中。 当然,您还可以通过我们的营销活动 API 访问所有这些功能。

一些常见问题解答

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

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

问:是否有沙盒或方法可以在不发送电子邮件的情况下测试我的电子邮件?

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

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

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

问:SendGrid 是否支持强制 TLS

答:当然。 您可以要求接收服务器支持 TLS 并将消息丢弃到不符合要求的服务器。

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

答:是的。 让您的收件人更好地控制他们的电子邮件可以让您发送人们想要的电子邮件,这对每个人都有好处。 查看退订群组以获取更多信息。

如果您有兴趣迁移到 SendGrid,可以在 sendgrid.com/pricing 找到更多信息。