tutorial rails example configurar ruby-on-rails actionmailer

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