Рельсы 3
Config / окружающая среда / development.rb:
ActionMailer::Base.default :from => 'default@development-server.com'
Config / окружающая среда / 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) Статья Обсуждение плагина.
OR
Вы можете обезьянить патч 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 / окружающая среда / development.rb: * 1 042 *
ActionMailer::Base.default = {:from => 'default@development-server.com'}
Config / окружающая среда / production.rb:
ActionMailer::Base.default = {:from => 'default@production-server.com'}
Вы также можете установить это для почтовой программы:
class MyMailer < ActionMailer::Base
self.default = {:from => 'default@myapp.com'}
end