Ответ 1
Рельсы 3
конфигурации/среда/development.rb:
ActionMailer::Base.default :from => '[email protected]'
конфигурации/среда/production.rb:
ActionMailer::Base.default :from => '[email protected]'
Вы также можете установить это для каждого отправителя:
class MyMailer < ActionMailer::Base
default :from => '[email protected]'
end
Рельсы 2
Это не поддерживается по умолчанию. Но вы можете достичь этой функциональности, используя плагин action_mailer_callbacks. По существу этот плагин позволяет добавлять фильтры before
и after
для метода deliver
.
class FooMailer < ActionMailer::Base
before_deliver do |mail|
mail.from = "[email protected]"
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
Теперь вы можете настроить свое значение по умолчанию следующим образом:
конфигурации/среда/development.rb:
ActionMailer::Base.default = {:from => '[email protected]'}
конфигурации/среда/production.rb:
ActionMailer::Base.default = {:from => '[email protected]'}
Вы также можете установить это для каждого отправителя:
class MyMailer < ActionMailer::Base
self.default = {:from => '[email protected]'}
end