8

RoRアプリケーションでExchange互換のメールサーバーをセットアップしました。私はで次のセットアップを使用しましたdevelopment.rb

config.action_mailer.smtp_settings = {
  :address              => 'mail.server.com',
  :port                 => 5870,
  :user_name            => 'username',
  :password             => 'password',
  :authentication       => :login
}

この設定は機能しません、私は得ますNet::SMTPAuthenticationError: 504 Unrecognized authentication type.

ただし、でまったく同じ構成を適用すると、environment.rb完全に機能します。

ActionMailer::Base.smtp_settings = {
  :address              => 'mail.server.com',
  :port                 => 5870,
  :user_name            => 'username',
  :password             => 'password',
  :authentication       => :login  
}

どうしてこれなの?config.action_mailer.smtp_settings同じ設定をするべきではありませんか?これはバグですか?理由はありますか?

ここで説明したようにGmailで試してみましたが、機能するため、smtp_settingsはメーラーに影響しますが、すべてのオプションがカウント/機能するわけではないようです。

4

2 に答える 2

4

config.action_mailer.smtp_settingsに設定を転送しますActionMailer::Base.smtp_settings

ただし、主な違いは、前者は環境固有の設定であり、2 番目の設定はグローバル設定であることです。

つまり、設定を適用するには、必ずconfig.action_mailer.smtp_settings適切な環境ファイルに設定する必要があります。たとえば、本番環境で設定を使用する場合は、割り当てをconfig/environments/production.rbファイルに追加します。同様に、設定をプロジェクト全体に適用する場合は、 で設定しますconfig/application.rb

于 2012-07-04T20:54:55.730 に答える
2

同様の問題がありました.config.action_mailer.smtp_settingsは機能しませんでしたが、すべての構成は適切でした.

最後に、Rails 拡張機能が初期化フェーズで ActionMailer::Base 設定をオーバーライドすることがわかりました...すべてのコードとすべてのサードパーティ コード (!)、拡張機能、モジュールなどを調べてください。問題があるはずです!

于 2013-04-09T18:41:08.170 に答える