ruby-on-rails - rails - sendgrid devise mailer
ActionMailer: Default From: address? (4)
Rieles 3
config / environment / development.rb:
ActionMailer::Base.default :from => ''[email protected]''
config / environment / production.rb:
ActionMailer::Base.default :from => ''[email protected]''
También puede configurar esto por correo:
class MyMailer < ActionMailer::Base
default :from => ''[email protected]''
end
Carriles 2
Esto no es compatible de forma predeterminada. Pero puede lograr esta funcionalidad utilizando el complemento action_mailer_callbacks . Esencialmente, este complemento le permite agregar filtros before
y after
para el método de deliver
.
class FooMailer < ActionMailer::Base
before_deliver do |mail|
mail.from = "[email protected]"
end
end
Referencia:
1) Article discutiendo el plugin.
O
Puedes parchar el método de ActionMailer::Base
.
Agregue el siguiente código a su 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
Ahora puede configurar su valor predeterminado de la siguiente manera:
config / environment / development.rb:
ActionMailer::Base.default = {:from => ''[email protected]''}
config / environment / production.rb:
ActionMailer::Base.default = {:from => ''[email protected]''}
También puede configurar esto por correo:
class MyMailer < ActionMailer::Base
self.default = {:from => ''[email protected]''}
end
Googled para esto en vano. Tampoco encontré nada en la API. Esperaba algún tipo de método de clase u opción de configuración para configurarlo ...
Así que, en lugar de llamar
from "[email protected]"
Para cada método, se podría llamar automáticamente.
En Rails 4 puedes configurar esto en tu (s) entorno (s):
config.action_mailer.default_options = {
:from => "[email protected]"
}
En los carriles 3:
config / environment / development.rb:
ActionMailer::Base.default :from => ''[email protected]''
config / environment / production.rb:
ActionMailer::Base.default :from => ''[email protected]''
Fui con el método de parcheo de monos que sugirió KandadaBoggu. Sin embargo, no funciona del todo bien en Rails 2.3.8; no se puede anular el valor predeterminado. Esto funciona, sin embargo:
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