1

redmine wikiの指示に従って redmine でメールを設定しましたが、すべて正常に動作します。config/configuration.yml ファイルの内容は次のとおりです。

production:
delivery_method: :smtp
 smtp_settings:
    address: "smtp.sendgrid.net"
    port: 587
    authentication: :plain
    domain: "heroku.com"
    user_name: my_email@gmail.com
    password: my_password 

ただし、次のように my_email@gmail.com と my_password の代わりに環境変数を使用しようとしています。

production:
  delivery_method: :smtp
  smtp_settings:
    address: "smtp.sendgrid.net"
    port: 587
    authentication: :plain
    domain: "heroku.com"
    user_name: <%= ENV['SENDGRID_USERNAME'] %>
    password: <%= ENV['SENDGRID_PASSWORD'] %>

構成ファイルの環境変数を使用してテストメールを送信しようとすると、redmine で次のエラーが発生します。

「メールの送信中にエラーが発生しました (535 認証に失敗しました: 不正なユーザー名/パスワード)」.

したがって、erb スニペットは評価されていないと思います (環境変数の値を再確認しました)。

解決策を検索しましたが、何も表示されませんでした。構成ファイルで sendgrid 資格情報を公開しないように、redmine で電子メールを構成する方法について何か提案はありますか?

または、環境変数なしで資格情報を直接使用することはセキュリティ上のリスクではないと誰かが言うことができれば、それも私の問題を解決します。

4

1 に答える 1

6

2 週間前にこの質問に回答しましたが、すぐに他の人によって削除されました。したがって、他の人がこの問題の解決方法を知るのを防ぐために、誰かがこの回答を再度削除するかどうかはわかりません。幸運を!

私は同じ問題を抱えており、この記事の セットアップ・メーリング・イン・レッドマイン・オン・ヘロクが私の問題を解決しました。

アイデアは、設定をconfig/configuration.ymlに移動し、 config/environments/production.rbRuby コードを使用して設定することです。ENV['key']は で処理されているため、そのようには処理されていないerbと思いconfiguration.ymlます。たぶん、セキュリティ上の問題がありますか?

したがって、あなたの場合、これらのコードをconfig/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

からコードを削除しconfig/configuration.ymlて、次のようにします。

default:
  # Outgoing emails configuration (see examples above)
  email_delivery:
    delivery_method: :smtp
于 2013-06-26T06:18:44.733 に答える