Mailgunを使ってメールを送る(1) ~herokuからメールを送る編~
herokuでメールを送ろうと思ってmailgunを触ってみた。
sendgridを選択しなかったのは、mailgunのが見栄えが好きだからだけです....(認証に失敗して、めんどくなったわけでは...)
大まかな手順
- herokuのaddonを追加するためにcard情報を登録
- mailgunのaddonを追加する
- rest_clientをgemfileに追加(smtpではなくhttpで送るために必要)
- とりあえずメールを飛ばしてみる
詳細はこちらを参照
herokuのaddonを追加するためにcard情報を登録
仕方ないのでクレジットカード、登録しましょう。
mailgunのaddonを追加する
herokuに登録しているappのディレクトリに行ってコマンドを実行
heroku addons:add mailgun
herokuのaddonの画面でmailgunを探して、そこから登録でもOK
rest_clientのgemを追加
rest_clientのgemを追加する
コマンドでとりあえずメールを飛ばしてみる
まずはherokuのコンソールを立ち上げる
heroku run console
その後、以下を入力
require 'rest_client'
API_KEY = ENV['MAILGUN_API_KEY']
DOMAIN = "xxxxxxxxx.mailgun.org"
API_URL = "https://api:#{API_KEY}@api.mailgun.net/v2/#{DOMAIN}"
RestClient.post API_URL+"/messages",
:from => "me@#{DOMAIN}",
:to => "hoge@example.com",
:subject => "This is subject",
:text => "Text body",
:html => "<h1>Hoge</h1><p>aaaaaaaaaaa aaaaaaaaaa aaaaaaaaaaaa</p>"
DOMAINは、mailgunの管理画面の"Domains"のメニューに表示されるDomain Nameを入れればOK。
管理画面は以下のコマンドで開ける
heroku addons:open mailgun
API_KEYはaddonを追加したら自動的にherokuの環境変数に登録されているみたい。
確認したい場合は
heroku config