使用 SendGrid 和 Rails 发送时事通讯 - 什么是最好的方法?

Sending newsletters with SendGrid and Rails - What is the best approach?

我有一个带有 sendgrid API 设置的 rails 应用程序,我可以很好地发送交易电子邮件。现在我希望能够发送时事通讯,但我对流程以及如何跟踪哪些用户想要取消订阅时事通讯感到有点困惑。

我考虑这样做的方法是当一个用户使用 signup 自动向 SendGrid API 发送请求并将它们添加到 contacts 列表时,如果他们想取消订阅来自我的应用程序设置页面的时事通讯或交易电子邮件我可以将此信息保存在我的应用程序的数据库中,但也可以向 sendgrid 的取消订阅列表发送请求以更改那里的值。现在我可以在 sendgrid 中创建新闻通讯并从那里发送出去,而无需在我的应用程序中执行任何操作。这种方法的一个警告是,如果用户通过时事通讯单击取消订阅按钮并且 sendgrid 中的值发生更改,但更改不会反映在我的应用程序中 - 要解决此问题,最好创建一个 cron 作业定期检查 sendgrid 是否有任何更改,然后将它们保存到我的数据库,或者取消订阅页面应该是我应用程序的一部分,当他们 select 取消订阅时,我将它保存到我的数据库,然后将更改推送到 sendgrid?如果我采用这种方法,如果用户想要进行这些更改,我是否会要求他们登录?

另一种方法是放弃在 sendgrid 中创建任何联系人列表,而只是在 sendgrid 中创建电子邮件并使用 rake 任务将其发送出去以触发发送?

抱歉,如果这是一个非常基本的问题,但这是我第一次尝试设置时事通讯等,似乎无法在网上找到任何有关为此采取的最佳策略的信息 - 我希望这个问题有道理。

此处为 Twilio SendGrid 开发人员布道师。

这个问题对于 Stack Overflow 来说有点过于主观,您描述的许多选项都可以使用,但它们取决于它是否适合您的应用程序。但是,我会尝试提供一些指导。

首先,无论您采用何种方法,我都建议您设置 subuser accounts within SendGrid,以便您的交易电子邮件和时事通讯电子邮件来自不同的子用户。这样取消订阅时事通讯不会影响交易电子邮件。

我会使用 SendGrid 联系人列表发送新闻通讯。这使您无需自己构建东西就可以对联系人拥有很大的权力。您可以对列表进行细分,如果需要,可以创建 unsubscribe groups (where a user can unsubscribe from a subset of your emails instead of all of them) and send emails from within SendGrid without bothering your Rails app. You can still set up to trigger a newsletter from your app using the API

至于维护用户的订阅状态,我会继续导出联系人列表并以这种方式使您的数据库保持最新。发送到您的联系人列表时,重要的是 SendGrid 具有订阅状态的真实来源,如果需要,您的应用程序可能会有点落后。 The SendGrid docs for exporting contacts also say:

Twilio SendGrid recommends exporting your contacts regularly as a backup to avoid issues or lost data.

所以这也符合那个建议。

至于退订链接,最简单的方法是使用 SendGrid 退订表单,让 SendGrid 处理所有退订,并且您的导出可以使您的数据库保持最新。这还允许您处理取消订阅组的添加,而无需您身边的任何更多代码。

通过更多的工作,您可以创建自己的退订表单,以便您的数据库与订阅状态保持同步。您对用户是否应该登录的选择取决于您希望在用户取消订阅之前给他们带来多少摩擦,以及您认为用户转发您的电子邮件并让他们的朋友取消订阅可能会给您带来多少问题。不过,这取决于您。

希望对您有所帮助!