23
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SendGridAdvent Calendar 2016

Day 18

HerokuアドオンなSendGridを独自ドメインで使用するまでの3ステップ

Last updated at Posted at 2016-12-18

SendGrid Advent Calendar 2016の18日めの記事です。

Herokuではカスタムドメイン機能を使用することで、アプリケーションを独自ドメインで運用することができます。SendGridのアドオンを使用することで、簡単にSendGridにサインアップし、無料利用の範囲内で、アプリケーションから送信元を独自ドメインにしたメール配信もできるわけですが、この組み合わせでの一連の作業がまとまっている記事を見かけることがない(ような気がする)ので、しゅるっとまとめてみました。

目標

独自ドメインAppから、SendGridを使って、送信元が独自ドメインのメールを送信できるようにする

前提

  • この記事では、利用する独自ドメインをexample.comとして話を進めます。
  • 無料の範囲(Starterプラン)では、月12,000通までの配信数制限があります。

用意するもの

  • Herokuアカウントと、動かそうとしているアプリケーション
  • 利用するドメインと、これを管理するネームサーバ

1. Herokuにカスタムドメインを設定する

  • heroku domains:add www.example.com などとして、アプリケーションのカスタムドメインとして www.example.com を追加します。
  • heroku domains として、設定済みのカスタムドメインに対応するDNS Targetを確認します。
  • ネームサーバの設定を変更し、設定したカスタムドメインのホスト名に対するCNAMEレコードを、確認したDNS Targetに向けるように設定します。

より詳しくは、Herokuが公開している記事を参照してください。

2. SendGrid Addonを利用開始する

  • heroku addons:create sendgrid:starter として、SendGridアドオンを設定します。
  • heroku config とし、環境変数に設定されたSendGridの認証情報(SENDGRID_USERNAME, SENDGRID_PASSWORD)を確認します。
  • 作成したアプリケーションから、上記で確認した認証情報を使用して(またはアプリケーション内から上記の環境変数へアクセスして)、メールを送信できることを確認します。

より詳しくは、Herokuが公開している記事を参照してください。

ここまでやれば、ひとまずメールは送れるようになります。
しかしながら、このまま独自ドメインからのメールを送りますと、受信側メールサーバから見たときに、送信元サーバの正当性が確認できません。Gmailでは、受信メールに以下の図のように "sendgrid.me経由" な文字列が表示されます。

Kobito.nPiSID.png

これは、メールのFromは@example.comなのに、送信元はsendgrid.meのサーバから送られているぞ、という判定がされてしまっているためです。そこで、最後のステップとして、Domain Whitelabelにより、@example.comなメールがSendGrid経由で送られることを設定することにします。

※ 2016/12/20 16:48更新: 記事初出時は、DMARC判定について言及しておりましたが、Whitelabel設定とDMARC判定とは関係がないため、当該記述については削除しました。

3. Domain Whitelabelを設定する

  • heroku addons:open sendgrid として、Herokuアプリケーションに設定したSendGridアドオンのダッシュボードを開きます。
  • 左側のメニューから Settings > Whitelabels > Domains に進み、 "Add New Domain(Add Whitelabel)" のフォームを開きます。
  • メールの送信元となる独自ドメインの情報を入力します。ここで、メールの送信元として @example.com を使用する場合、Domain に example.com と指定します。Subdomain は他のレコードと重複しなければ何を指定してもOKです。

Kobito.hZkCfp.png

  • 設定後に表示されるCNAMEレコードのリストを、自身のネームサーバに設定します。

Kobito.SMBapK.png

設定完了後に "Validate Record" ボタンを押して、設定状況を検証します。検証が完了すれば、独自ドメインからのメールの送信元を正しく検証できるようになります。(新しいレコードをすぐに確認できない場合は、手元から設定したレコードのCNAMEが引けるか確認してみたり、少し時間を置いてからリトライしてみましょう。)

より詳しくは、SendGridの日本代理店である構造計画研究所さんがまとめている記事を参照してください。

おわりに

  • 既存の記事をまとめただけです。すみません。
  • Whitelabel は、この他にEmail Link WhitelabelとIP Whitelabelがあり、よりメールの信頼性を高めるのに効果的です。IP Whitelabelは無料の範囲では使用できませんが、どのようなものかは把握しておいたほうが良いでしょう。
  • メールの通数が増えてくる場合や、重要な用途でメールを用いることになる場合は、構造計画研究所さんにコンタクトして、日本でのサポートをいただけるようアカウントを作り直した方が良いと思います。

参考

23
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?