0

私はActionMailerを本番と開発の両方で正しく機能させています。環境ごとに異なるSMTP設定を使用し、開発にはGmailを使用し、本番環境にはHerokuを介したSendGridアカウントを使用します。setup_mail.rbファイルの設定を手動で切り替えて開発で機能させてから、本番環境にプッシュする前に元に戻します。これにより、SendGrid / Heroku設定でファイルにパスワードが必要ないため、Gmailのパスワードがgithubで公開されるのを防ぐことができます。

開発setup_mail.rb

    ActionMailer::Base.smtp_settings = {
      :address              => "smtp.gmail.com",
      :port                 => 587,
      :domain               => "mysite.com",
      :user_name            => "me@mysite.com",
      :password             => 'mypassword',
      :authentication       => "plain",
      :enable_starttls_auto => true
}

本番セットアップ_mail.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

パスワードを使用して開発設定を誤ってgithubにプッシュしてしまうのではないかと心配しています。これを防ぐために、手動で設定の切り替えを停止したいと思います。開発と本番用に異なるActionMailerBasesmtp設定をセットアップするにはどうすればよいですか?ありがとう

4

1 に答える 1

2

この設定をproduction.rbとdevelopment.rbに設定します。パスワードをハードコーディングする代わりに、環境変数をローカルで使用して、プロジェクトに.envファイルを作成します。このファイルは、次の場合に読み込まれますcd

EMAIL=me@mysite.com
EMAIL_PASSWORD= mypassword

development.rbでENV['EMAIL']ANDを使用しますENV['EMAIL_PASSWORD']

于 2013-03-06T17:46:12.680 に答える