GCP+Mailgun+Railsでメール送信を行う
やること
Railsで作ったアプリからのメール送信をGCP(Google 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設定内容が画面に表示されるのでこれをGCPのDNS設定画面に追加していきます。
以下の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です。
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をコピー' }
メール送信をアプリから実行してみて正常に受信できれば完了です!