質問

これについてGoogleで検索しても無駄でした。API にも何も見つかりませんでした。何らかのクラスメソッドまたは設定オプションがそれを設定することを期待していました...

したがって、電話するのではなく、

from "my@email.com"

すべてのメソッドについて、自動的に呼び出すことができます。

役に立ちましたか?

解決

レール 3

config/environments/development.rb:

ActionMailer::Base.default :from => 'default@development-server.com'

config/environments/production.rb:

ActionMailer::Base.default :from => 'default@production-server.com'

これをメーラーごとに設定することもできます。

class MyMailer < ActionMailer::Base
  default :from => 'default@myapp.com'
end

レール2

これはデフォルトではサポートされていません。ただし、この機能は、 action_mailer_callbacks プラグイン。基本的にこのプラグインを使用すると、次のことを追加できます before そして after のフィルター deliver 方法。

class FooMailer < ActionMailer::Base
  before_deliver do |mail|
    mail.from = "abc@xyz.com"
  end

end

参照:

1) 記事 プラグインについて話し合っています。

または

モンキーパッチを適用できます from の方法 ActionMailer::Base.

以下のコードを config\initializers\mail.rb

class ActionMailer::Base
  class_inheritable_hash :default
  def from_with_default(input=nil)
    return from_without_default(input) || default[:from] if input.nil?
    from_without_default(input)
  end
  alias_method_chain :from, :default
end

これで、次のようにデフォルト値を設定できるようになりました。

config/environments/development.rb:

ActionMailer::Base.default = {:from => 'default@development-server.com'}

config/environments/production.rb:

ActionMailer::Base.default = {:from => 'default@production-server.com'}

これをメーラーごとに設定することもできます。

class MyMailer < ActionMailer::Base
  self.default = {:from => 'default@myapp.com'}
end

他のヒント

レール4で使用している環境(複数可)でこれを設定することができます:

config.action_mailer.default_options = {
  :from => "foo@bar.com"
}

レール3:

設定/環境/ development.rbます:

ActionMailer::Base.default :from => 'default@development-server.com'

設定/環境/ production.rbます:

ActionMailer::Base.default :from => 'default@production-server.com'

私はKandadaBogguが提案猿パッチングの方法で行ってきました。しかし、それはRailsの2.3.8でかなり右動作しません。あなたはデフォルトを上書きすることはできません。しかし、これは動作します:

def from_with_default(input=nil)
  return instance_variable_set("@from", input) unless input.nil?
  from_without_default || FROM_EMAIL
end
alias_method_chain :from, :default
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top