現在、すべてのsmtp設定をenvironment.rbファイルに設定しています。
すべての設定をデータベースに保存しました。
モデルから smtp 設定をバインドしたい。
モデルからこれらの設定を動的にバインドするにはどうすればよいですか?
現在、すべてのsmtp設定をenvironment.rbファイルに設定しています。
すべての設定をデータベースに保存しました。
モデルから smtp 設定をバインドしたい。
モデルからこれらの設定を動的にバインドするにはどうすればよいですか?
警告: smtp_settings はクラス変数であり、インスタンス変数ではありません。サーバーがユーザー要求ごとに異なる ruby プロセスをフォークしている場合、上記の方法は機能します。新しいプロセスがフォークされず、代わりにスレッドがユーザー要求ごとに作成される場合、競合状態が発生する可能性があります。
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
共通の送信者関数を作成しました。それが役立つかもしれません。