0

现在我已经在 environment.rb 文件中设置了我的所有 smtp 设置。

我已将所有设置存储在数据库中。

我想从我的模型中绑定 smtp 设置。

我如何从模型动态绑定这些设置?

4

2 回答 2

4

警告:smtp_settings 是一个类变量,而不是实例变量。如果服务器为每个用户请求派生不同的 ruby​​ 进程,则上述方法将起作用。如果没有派生一个新进程,而是根据用户请求创建一个线程,则可能存在竞争条件。

于 2011-08-04T09:53:55.680 回答
1
class UserMailer < ActionMailer::Base

   UserMailer.smtp_settings = {
      :tls            => Model.find_by_column_name("SMTP_TLS").column_name,
      :address        => Model.find_by_column_name("SMTP_ADDRESS").column_name,
      :port           => Model.find_by_column_name("SMTP_PORT").column_name,
      :domain         => Model.find_by_column_name("SMTP_DOMAIN").column_name
   }

  def mail_example(to_address,subject,options={})
    sender(to_address,subject,options)
  end

  def sender(to_address,subject,options)
    recipients to_address
    from Model.find_by_column_name("SMTP_FROM_ADDRESS").column_name
    subject subject
    sent_on Time.now
    body options
  end
end

我已经创建了一个通用的发件人功能。可能会有所帮助。

于 2010-08-20T19:29:37.077 回答