11

Sendgrid が追加された Heroku にデプロイされた、Devise が追加された単純な Rails 3.2.7 アプリがあります。メールの送信が必要なパスワードの取得を行う必要がある場合を除いて、heroku ではすべて正常に動作します。私が読んだすべての投稿から、私はどういうわけかメールパラメータを間違って設定していると思われます. 任意の提案をいただければ幸いです。

config/environments/production.rb に追加しました

config.action_mailer.default_url_options = { :host => 'smtp.sendgrid.net'} 

config/initializers/devise.rb に追加しました

config.mailer_sender = "mail-to-send@from.com"

そしてconfig/environments.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',
:enable_starttls_auto => true
}
4

1 に答える 1

8

したがって、あなたの問題は、間違った環境変数を参照していたことです。Heroku は、SendGrid 資格情報をENV['SENDGRID_USERNAME']とに保存しますENV['SENDGRID_PASSWORD']。実際のユーザー名とパスワードをキー名として使用していました。

これはうまくいきます:

ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.sendgrid.net',
  :port           => '587',
  :authentication => :plain,
  :user_name      => ENV['SENDGRID_USERNAME'],
  :password       => ENV['SENDGRID_PASSWORD'],
  :domain         => 'heroku.com',
  :enable_starttls_auto => true
}
于 2013-04-25T19:55:54.107 に答える