メールを受信する
SendGridではメールの送信だけでなく、メール受信に相当するParse Webhookという機能を提供しています。この機能は、設定したドメイン宛のメールをSendGridで受信して、HTTP(s)に変換して指定したURLにPOSTするものです。メール受信ができると言っても、メールボックス機能が提供されているわけではないので、受信したメールがSendGrid上に保存されることはありません。
仕組み
Parse Webhookを利用するには、メールを受信するドメインのMXレコードをSendGridに向け、そのドメインに対応したPOST先URLを指定する必要があります。設定を行ったドメイン宛のメールは全てSendGridに配信され、SendGridは受信したメールを対応するURLにHTTP(s)でPOSTします。
対象ドメインがkke.co.jpの場合:
必要条件
Parse Webhookを利用するには、事前に該当ドメインのDomain Authenticationを設定する必要があります。Domain Authenticationで設定したドメインおよびその配下の任意のサブドメインがParse Webhookで設定可能になります。
例えば、@kke.co.jpや@hoge.kke.co.jpドメインでメール受信したい場合、Domain AuthenticationのDOMAINに「kke.co.jp」と入力した設定を作成する必要があります。SUBDOMAINには他(Parse Webhookで使用するサブドメインも含む)で使用していない任意の値を設定してください。
設定
SendGrid側の設定
ダッシュボードのメニューから「Settings > Inbound Parse」を選択して、「Add Host & URL」ボタンを選択します。
以下を参考に設定し「Add」ボタンを選択して保存します。
- Subdomain
メール受信するドメインにサブドメインを付加する場合に設定します。入力は任意です。 - Domain
メール受信するドメインを指定します。設定済みDomain Authentication一覧から選択します。 - Destination URL
POSTを受信するWebアプリケーションのURLを指定します。 - Check incoming emails for spam
- POST the raw, full MIME message
詳細はユーザマニュアルを確認してください。今回はいずれもチェックをOFFにします。
DNSレコードの登録
次に、メールを受信するドメインのDNSにレコードを追加します。追加対象のドメインは先程Inbound Parse設定画面で設定したSubdomainおよびDomainのドメインです。例えば、
- Subdomain:hoge
- Domain:kke.co.jp
と設定した場合、以下のようなDNSレコードを登録します。
- Host:hoge.kke.co.jp
- Type:MX
- Value:mx.sendgrid.net
DNSレコードを登録したら内容が反映されるまでしばらく待ちます。
POSTを受信するアプリケーションの準備
POSTを受信するにはWebアプリケーションを用意する必要があります。まずはPOSTの内容を確認してみたい場合はRequestBinというサービスを利用するのが簡単です。この他に、実際のアプリケーションで試してみたいという方向けに、POSTを受信するサンプルアプリケーションを公開しています。Readmeの手順に従ってPOSTの受信環境を構築してください。Parse WebhookでPOSTされる内容の詳細についてはAPIリファレンスを参照してください。
設定が完了したら、設定したドメイン宛に任意のクライアントからメールを送信します。ローカルパートは基本的に何でも構いませんが、”abuse”、”postmaster”、”unsubscribe”は使用できません。SendGrid側でメールを受信すると、設定したURLにPOSTされます。
注意事項
- MXレコードをSendGridに向けることでそのドメイン宛のメールが全てSendGridに配信されます。既にメール受信に利用しているドメインの設定を変更すると既存のメールサーバにはメールが配信されなくなります。
- POSTに成功したかどうかはSendGridでは確認できません。受信側のアプリケーションでログを確認してください。