使用动态SMTP(设置)rails delayed_job

时间:2014-07-30 14:18:00

标签: ruby-on-rails ruby actionmailer delayed-job


Rails 4,Ruby 2,delayed_job 4.0.2
我可以设置动态SMTP设置吗? 例如,我需要设置user_name和password,我应该在哪里添加属性?
我的代码:

  class Email < Struct.new(:user_id, :attr)
    def save
      user = User.find(user_id)
      ActionMailer::Base.smtp_settings
        .merge!({ user_name: attr['serverEmail'], password: attr['serverPass'] })
      ReportMailer.delay.send_report(user, attr)
    end
  end

正如您所看到的,我添加了.merge!(...needed attributes...),但这不起作用! 至于我delay_job只有在我向ActionMailer::Base.smtp_settings = {...}添加所有属性时才有效
,但我需要动态设置 需要帮助!谢谢!
附:
复制到github

1 个答案:

答案 0 :(得分:0)

我有来自albus522的ansver(delay_job开发者): “你必须更改send_report邮件程序方法中的设置。否则DJ不知道它已被更改”。
所以,我已经移动了

ActionMailer::Base.smtp_settings
    .merge!({ user_name: attr['serverEmail'], password: attr['serverPass'] })

来自

class Email


class ReportMailer < ActionMailer::Base
#send_report method

所有工作!
谢谢!