Настройка связывания действий почтовой программы SMTP от модели - PullRequest
0 голосов
/ 20 августа 2010

Сейчас я установил все настройки smtp в файле environment.rb.

Я сохранил все настройки в базе данных.

Я хочу связать настройки smtp с моей моделью.

Как я могу динамически связать эти настройки с моделью?

Ответы [ 2 ]

4 голосов
/ 04 августа 2011

ВНИМАНИЕ: smtp_settings является переменной класса, а не переменной экземпляра.Если сервер разветвляет другой процесс ruby ​​для каждого пользовательского запроса, то вышеупомянутый метод будет работать.Если новый процесс не разветвлен, а вместо этого создается поток для каждого пользовательского запроса, возможно, существует условие гонки.

1 голос
/ 20 августа 2010
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

Я создал функцию общего отправителя.Может быть, это поможет.

...