LoginSignup
9
9

More than 5 years have passed since last update.

Heroku上でRedmineとSendGridを連携させる

Last updated at Posted at 2013-10-16
  • Heroku に Redmine を立てた
  • Heroku からはメールが配信できないので,外部SMTPサーバー等を利用する必要がある
  • 今回はHerokuのアドオンとして提供されている SendGrid [1] を利用した
  • Redmine の構築は基本的には [2] を参考に行った(ので,割愛)

Redmine のメール配信に SendGrid を利用する

  • アドオンの画面からSendGridを選ぶ
  • プランと利用するAppの名前を選択して,Add ボタンを押す
    • もしくは,手元から heroku addons:add sendgrid:plan でも追加できる
    • Starter(Free)プランだと200通/日メールを送ることができる

Redmine のから SendGrid を利用するように設定する

  • SendGrid をアドオンとして追加すると,アプリケーションの設定としてユーザ名とパスワードがHeroku上で設定された状態になる
    • $ heroku config で一覧することができる
$ heroku login
$ heroku config
DATABASE_URL: postgres://~~~
...
SENDGRID_PASSWORD: ****
SENDGRID_USERNAME: ****@heroku.com
  • この値は環境変数として設定されているので,Rails(Ruby)側から簡単に取得することができる
  • config/configuration.yml を編集(config/configuration.yml.example からコピー)
    • 例として記述されている(コメントアウトされている)行以外は削除するのがおすすめ(コメントアウトされていない行を見落とし,デフォルト値として読み込まれてハマった)
config/configuration.yml
default:
  email_delivery:
    delivery_method: :smtp
  • config/environment.rb にメールサーバーの情報をそのまま書くこともできそうだが,どう頑張ってもエラーになってしまって利用できなかったため,実際の設定は config/environments/production.rb と分割して書いた(参考 [3])
  • config/environments/production.rb を編集
    • 最下部(RedmineApp::Application.configure do ~ end の外側)に下記を追記
confit/environments/production.rb
ActionMailer::Base.smtp_settings = {
  :address => 'smtp.sendgrid.net',
  :port    => '587',
  :authentication => :plain,
  :user_name => ENV['SENDGRID_USERNAME'],
  :password => ENV['SENDGRID_PASSWORD'],
  :domain => 'heroku.com'
}
ActionMailer::Base.delivery_method = :smtp
  • これを Heroku へ push することで,SendGrid をメール配信に利用することができる
    • .gitignore ファイルに config/configuration.yml がリストされている場合は削除する必要がある

SendGrid のダッシュボード

  • Heroku ダッシュボードからSnedGridのダッシュボードを見に行くことができる
    • 何通送った,何通届いた,オープンされた(トラッキングするかの設定が必要)などが見られる

sendgrid_dashboard.png

参考

9
9
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
9
9