4

我已经使用 sendgrid 和 actionmailer 通过 rails 应用程序发送了电子邮件,我也收到了邮件。但是我想在我的 rails 应用程序中发送 sendgrid 的电子邮件的状态(打开、发送、退回……),以便我可以将特定电子邮件的响应保存在我的数据库中。

我已关注: https ://github.com/stephenb/sendgrid 用于发送电子邮件,它对我有用。

4

2 回答 2

2

要获取已发送电子邮件的状态,请使用此处所述的 sendgrid webhook

设置完成后,sendgrid 将通知您的 url 以获取以下事件:

  • 已处理:消息已被接收并准备好发送。
  • 已删除:收件人存在于您的一个或多个抑制列表中:退回、垃圾邮件报告、取消订阅。
  • 已投递:消息已成功投递到接收服务器。
  • 延迟:收件人的电子邮件服务器暂时拒绝邮件。
  • Bounce:接收服务器不能或不会接受消息。
  • 打开:收件人已打开 HTML 邮件。
  • 单击:收件人单击消息中的链接。
  • 垃圾邮件报告:收件人将邮件标记为垃圾邮件。
  • 退订:收件人点击消息的订阅管理链接。
于 2013-03-18T15:34:19.090 回答
1

您应该为您的应用设置事件 webhook。完成后,您将收到以下格式的 POST 到您的应用程序:

{
  "email":"foo@bar.com",
  "timestamp":1322000095,
  "unique_arg":"my unique arg",
  "category": "some_category",
  "event":"delivered"
}

由于您使用的是 Rails,因此您还应该查看GridHook。SendGrid 没有正式支持它,但是开源社区中有很多人在致力于它。有了它,您将能够执行以下操作:

Gridhook.configure do |config|
  # The path we want to receive events
  config.event_receive_path = '/sendgrid/event'

  config.event_processor = proc do |event|
     # event is a Gridhook::Event object
     EmailEvent.create! event.attributes
  end
end
于 2013-03-18T17:44:14.860 回答