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
答案 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
所有工作!
的谢谢!强>