SendGridをHeroku+Rails+ActionMailerで使う方法

Kaoru Mori
Aug 21, 2018 · 2 min read

SendGridをHerokuで稼働しているRuby on Railsのアプリから利用するための作業メモを書きました。

SendGridアドオンの追加

以下のコマンドでSendGridアドオンを追加します。Starterプランは無料で、月間12,000通までのメールを送信することができます。

$ heroku addons:create sendgrid:starter

SMTPの設定

SMTPの設定をします。SendGridのユーザ名とパスワードは環境変数から取得します。

  • config/environments/production.rb
config.action_mailer.default_url_options = { host: 'appname.herokuapp.com' }
config.action_mailer.smtp_settings = {
user_name: ENV['SENDGRID_USERNAME'],
password: ENV['SENDGRID_PASSWORD'],
domain: 'herokuapp.com',
address: 'smtp.sendgrid.net',
port: 587,
authentication: :plain,
enable_starttls_auto: true
}

ActionMailerの作成

$ rails g mailer DailyNotifier
  • app/mailers/daily_notifier.rb
class DailyNotifier < ApplicationMailer
default from: 'kaoru.mori@gmail.com'
def notify
mail(to: 'kaoru.mori@gmail.com', subject: 'Daily Report') do |format|
format.text
end
end
end
  • app/views/daily_notifier/notify.text.erb
ここにメール本文のテキストを書く

メール送信

DailyNotifier.notify.deliver
Kaoru Mori

Written by

ねこぱんち研究所 主任研究員, kaoru.mori@gmail.com

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade