# 再见 Sparkpost

**URL:** https://meta.discourse.org/t/goodbye-sparkpost/123026
**Category:** Self-hosting
**Tags:** email
**Created:** [2019年七月16日 03:29 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026 "2019-07-16T03:29:33Z")
**Posts on this page:** 11
**Page:** 2

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2019年七月19日 15:53 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/23 "2019-07-19T15:53:47Z")

</div>

但 Elastic Email 也存在一些问题 [Add IsTransactional:true to SMTP Mail Headers to satisfy ElasticEmail - #8 by pfaffman](https://meta.discourse.org/t/add-istransactional-true-to-smtp-mail-headers-to-satisfy-elasticemail/122438/8)

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2019年七月19日 16:05 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/24 "2019-07-19T16:05:54Z")

</div>

Jay，谢谢你提出这个问题。让我更好地理解一下：

你指出的情况是：当人们收到来自 Elastic Email 的邮件时，他们会看到一个非常显眼的链接，可以单方面取消订阅邮件接收，而 Discourse 对此一无所知？作为 SA，你也将对此毫不知情？

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2019年七月19日 16:14 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/25 "2019-07-19T16:14:25Z")

</div>

我没有第一手经验。

听起来他们插入了一个取消订阅链接，并且需要特殊的邮件头来将其移除。我不确定是否有办法让 Elastic Email 通过 webhook 通知 Discourse 关于取消订阅的信息，但在 [Configure VERP to handle bouncing e-mails](https://meta.discourse.org/t/handling-bouncing-e-mails/45343) 中并未列出这些选项。

我认为如果你能让 AWS 正常工作，那可能是最好的解决方案，但这对于来这里学习如何配置邮件的人来说并不是一个理想的方案。

Mailgun 用起来非常简单。

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2019年七月19日 16:17 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/26 "2019-07-19T16:17:17Z")

</div>

谢谢。

这对我来说其实已经无关紧要了，原因如下：SparkPost 也做了完全相同的事情——尽管我得承认，我从未检查过是否有可用的钩子（真蠢，因为确实有，而且现在已经是 2019 年 FGS 了）。

当时我之所以发现这个问题，是因为受影响的网站服务于我所在的本地社区，我偶然遇到了一位不小心点击了 SparkPost 邮件中取消订阅链接的用户，他抱怨自己收不到任何密码重置邮件。不过，SparkPost 对此有审计日志，并且管理员可以重新为用户订阅（当然，需要谨慎使用！），因此一旦我了解到问题所在，修复起来就很简单了。下次我会更好地配置我的电子邮件设置。

不过，你确实让我开始倾向于使用 Mailgun 了，谢谢！

---

<div class="post-metadata">

### Author: ![wesochuck](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wesochuck/32/108706_2.png) [@wesochuck](https://meta.discourse.org/u/wesochuck)
#### Post date: [2019年七月19日 17:38 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/27 "2019-07-19T17:38:37Z")

</div>

> [@pfaffman](#):
>
> 有一个 webhook 用于通知 Discourse 关于退订事件，但这些事件并未列在 [处理退信](https://meta.discourse.org/t/handling-bouncing-e-mails/45343) 中。

我真希望 Discourse 能提供一种更“通用”的方式来处理 webhook 邮件退信。我们首选的服务商（Postmark）也不在列表中，这意味着我们仍在向那些地址已退信的联系人发送邮件。

如果能有一个神奇的通用 JSON webhook 解析器来处理退信 webhook，那就太棒了！

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2019年七月19日 17:53 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/28 "2019-07-19T17:53:16Z")

</div>

> [@wesochuck](#):
>
> 如果能有一个通用的魔法级 JSON 网络钩子解析器来处理退信网络钩子，那就太棒了！

你的意思是，如果能有一个“通用的 JSON 网络钩子标准”那就太棒了。目前，每家邮件服务商都自行定义格式，因此需要单独的解析器。开发一个能实现该功能的插件并非难事，价格大约在 500 美元左右，或许可以发布到 #Marketplace（甚至可能被接受为 PR）。

---

<div class="post-metadata">

### Author: ![wesochuck](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wesochuck/32/108706_2.png) [@wesochuck](https://meta.discourse.org/u/wesochuck)
#### Post date: [2019年七月19日 18:11 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/29 "2019-07-19T18:11:54Z")

</div>

是的，我刚才在想，如果假设 90% 以上的退信数据都是 JSON 或其他可通过正则表达式解析的格式，那么或许可以通过一个设置来指定 JSON 中代表退信邮箱地址的“字段”，以及可能代表退信类型（硬退信、软退信等）的另一个字段。

我们可以将其命名为“通用入站退信邮件 Webhook 正则解析器”。这个名字读起来很顺口 😛 这或许有助于应对我们未来可能持续面临的此类服务的频繁变动。

我们是一个流量较低的员工内网站点，所以目前可能就先这样将就着用吧。

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [2019年七月21日 01:29 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/30 "2019-07-21T01:29:00Z")

</div>

从另一个线程中，你还可以通过告诉 ElasticMail Discourse 的取消订阅链接位置来移除多余的 ElasticMail 取消订阅链接：将其特别标注为 `{unsubscribe:{https://.....}}`（我建议在提交拉取请求之前先与支持团队确认）。

这或许可以通过编辑翻译来实现？

---

<div class="post-metadata">

### Author: ![Viir](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/viir/32/244089_2.png) [@Viir](https://meta.discourse.org/u/Viir)
#### Post date: [2019年七月23日 16:01 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/31 "2019-07-23T16:01:29Z")

</div>

> [@SidV](#):
>
> 那么……你还能推荐其他电子邮件服务吗？

我之前也在我的 Discourse 实例中使用 SparkPost，最近收到了 SparkPost 发来的这则通知。  
于是我开始寻找替代方案。  
我搭建了 SendGrid，目前看来运行良好。我使用的是每月 15 美元的基础套餐。

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2023年一月19日 17:25 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/32 "2023-01-19T17:25:18Z")

</div>



---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2023年一月21日 11:33 UTC](https://meta.discourse.org/t/goodbye-sparkpost/123026/33 "2023-01-21T11:33:36Z")

</div>



[上一頁](https://meta.discourse.org/t/goodbye-sparkpost/123026.md?page=1)
