4

sendgrid と actionmailer を使用して Rails アプリからメールを送信しましたが、メールも受信しました。しかし、特定のメールの応答をデータベースに保存できるように、sendgrid の送信メールのステータス (open、deliver、bounce など) を Rails アプリで取得したいと考えています。

私はフォローしました: https://github.com/stephenb/sendgrid でメールを送信すると、うまくいきました。

4

2 に答える 2

2

送信済みメールのステータスを取得するには、こちらで説明されているように sendgrid Webhook を使用します

これがセットアップされると、sendgrid は次のイベントの URL を通知します。

  • 処理済み: メッセージは受信され、配信の準備ができています。
  • ドロップ: 受信者が 1 つ以上の抑制リスト (バウンス、スパム レポート、登録解除) に存在します。
  • 配信済み: メッセージは受信サーバーに正常に配信されました。
  • Deferred: 受信者の電子メール サーバーがメッセージを一時的に拒否しました。
  • バウンス: 受信サーバーがメッセージを受け入れることができなかったか、受け入れませんでした。
  • 開く: 受信者が 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 に答える