Ruby on Rails:如何获得有条件的发件人电子邮件地址

时间:2014-06-02 08:14:07

标签: ruby-on-rails ruby email actionmailer sender

我正在使用rails4,我需要根据条件更改Action Mailer的电子邮件地址。但它仍然采用电子邮件地址的默认值。如何使这个工作?

 class MailerController < ActionMailer::Base
   before_filter :get_tenant
   default from: "#{ENV['TENANT_EMAIL']}" if $tenant == 'mytenant'


   def get_tenant
     $tenant = 'mytenant'
   end
 end

我有mailerclass,它继承自MailerController ......

  

错误:发送邮件需要SMTP发件人地址。设置   消息smtp_envelope_from,return_path,sender或from address。

1 个答案:

答案 0 :(得分:1)

我的建议,更改&#39;来自&#39;内部邮件方法。

  def tenant?
    is_it_my_tenant_logic
  end 

  def from
    tenant? ? MailerController.default[:from] : "hiro@metaverse.com"
  end

  def a_mailer_method         
     mail(:from => from, :to => "yt@realworld.com" ,  :subject => "I have logged in")
  end