Inbound Email Parse Webhook

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

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

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

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

セットアップ

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

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

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

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

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

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

SendGridで受信可能なメッセージサイズ合計(ヘッダ、本文、添付ファイルなど含めたメッセージ全体)の上限は30MBです。ただし、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) として扱われることを示しています。