现在我已经在 environment.rb 文件中设置了我的所有 smtp 设置。
我已将所有设置存储在数据库中。
我想从我的模型中绑定 smtp 设置。
我如何从模型动态绑定这些设置?
现在我已经在 environment.rb 文件中设置了我的所有 smtp 设置。
我已将所有设置存储在数据库中。
我想从我的模型中绑定 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
我已经创建了一个通用的发件人功能。可能会有所帮助。