Inbound Email Parse Webhook

Inbound Parse WebhookはBronzeプラン以外で利用可能です。

SendGridは受け取ったメールから添付ファイルとコンテンツをパースすることができます。アプリケーションの例としては、メールを介してブログ記事を投稿するようなものがあります。

Parse Webhookでは、パースしたメールを指定されたURLにPOSTすることができます。POSTに対して5XXステータスエラーが返された場合、SendGridは自動的にリトライします。また、WebサイトやPOST URLの設定を誤った場合にデータの損失を防ぐため、4XXステータスが返された場合もリトライします。

送信時にエラーが発生した際、リトライされたくない場合は、POSTリクエストに対して2xxステータスを返すようにしてください。

エラーを返さないためには、あなたのリンクがメールを受け取った時に 2xx HTTP コードを返す必要があります。これによって、SendGridのシステムは、あなたのリンクはメールを受け取ったということを認識し、送信キューから削除します。有効な 2xx HTTP レスポンスを 受け取らなかった 場合、SendGridのサーバは、メッセージの送信に失敗したと考え、送信をし続けます。3日経っても送信できなかったメッセージはドロップされます。

セットアップ

メールのパース機能を利用するためには、以下のステップが必要です:

  • MXレコードのドメイン/ホスト名またはサブドメインに mx.sendgrid.net を指定する。
  • Parse APIの設定画面でドメイン/ホスト名とURLを関連付ける。

Inbound Parse Webhookはリダイレクトに対応していません。正しいURLを使用しない場合、POSTが失敗します。

サブドメイン+ドメインがユニークとなっていることを確認してください。

Whitelabel済みのドメインのみをInbound Parse設定で使用することができます。

詳細な手順については Setting Up The Inbound Parse Webhook を参照してください。

SendGridで受信可能なメッセージサイズ合計(ヘッダ、本文、添付ファイルなど含めたメッセージ全体)の上限は20MBです。ただし、SendGridの制限以外に、メールの中継点(各ISPや企業のメールシステムなど)でより厳しいサイズ制限が設けられている場合や、送信可能な添付ファイルの種類に制限が設けられていることでメール送信がブロックされている場合もありますのでご注意ください。

キャラクタセットとヘッダのデコード

ASCII以外の文字を含むメールを受け取ったとき、本節を読んでください。

メッセージやそのヘッダは、それらに関連付けられた文字セットを持つことができます。メッセージのパースを簡単にするために、SendGridは必要に応じて to、from、cc、およびsubjectヘッダをデコードします。技術的にはヘッダは複数の異なる文字セットにすることができますが、統一するために全てのヘッダをUTF-8に変換します。

charsets変数には、ヘッダ/フィールド名のハッシュと、それぞれの文字セットをエンコードしたJSONを含みます。例えば、以下のようになります:

1
[charsets] => {"to":"UTF-8","cc":"UTF-8","subject":"UTF-8","from":"UTF-8","text":"iso-8859-1"}

上記は、全てのヘッダは UTF-8 として、テキスト本文は Latin-1(ISO 8859-1) として扱われることを示しています。