Things of interesting

プログラミングに関する技術ネタの備忘録

GCP+Mailgun+Railsでメール送信を行う

やること

Railsで作ったアプリからのメール送信をGCPGoogle Cloud platform)+ Mailgunの環境で行えるようにする

GCPへのMailgun導入

公式のドキュメントがあるので以下を参考に導入してきます。

Mailgun でのメールの送信  |  Compute Engine ドキュメント  |  Google Cloud Platform

Mailgunアカウント作成

↑のリンクからアカウントを作成するとSandbox(テスト用)ドメインが初期状態で存在していますが本番で使いたいので新規作成します。
Domains → Add New Domain と進んでドメイン名を入力します。
入力するドメインは保持しているドメインサブドメインを使います。
(hatena.comの場合はmail.hatena.comとかにする)

GCPへの設定追加

Mailgunドメイン作成後にDNS設定内容が画面に表示されるのでこれをGCPDNS設定画面に追加していきます。 f:id:hnakanoya:20180124153617p:plain

以下のDNSレコードを追加します。
TXTレコード2つ(空白が含まれるのでダブルコーテーションで囲って入力)
MXレコード1つ(10 mxa.mailgun.org.と10 mxb.mailgun.org.の2つの値を入力)
CNAMEレコード1つ

設定が完了したらMailgunのDomainsメニューで設定の確認を行います。(DNSの伝播に少し時間がかかるので2,3分空けてください)

Check DNS Records Now を押して全てグリーンになればOKです。 f:id:hnakanoya:20180124154319p:plain

Railsの設定

Gemfile

gem 'mailgun_rails'

production.rb

config.action_mailer.delivery_method = :mailgun
config.action_mailer.mailgun_settings = {
  api_key: 'mailgunのDomains→API Keyの項目をコピー',
  domain: 'mailgunのDomains→一番上のDOMAINをコピー'
}

メール送信をアプリから実行してみて正常に受信できれば完了です!