Я хочу отправить письма с разных учетных записей. загружаю мой счет электронной почты по умолчанию из инициализатора файла:Может ли кто-нибудь объяснить, как экземпляры почтовых отправлений Rails?
if Rails.env != 'test'
....
email_settings = YAML::load(File.open("#{Rails.root.to_s}/config/email.yml"))
ActionMailer::Base.smtp_settings = email_settings[Rails.env].symbolize_keys unless email_settings[Rails.env].nil?
end
но для некоторых почтовых программ, я хочу отправить почту из специального счета:
def self.sendAlert(subj, message)
self.smtp_settings = YAML::load(File.open("#{Rails.root.to_s}/config/email_bot.yml"))[Rails.env].symbolize_keys
system_error_report(subj, message).deliver
end
def system_error_report(subj, message)
@message = message
mail to: "[email protected]", subject: subj
end
Как вы можете видеть, изменение счета заключается в функции класса «sendAlert ». До того, как я его разместил, я попытался сделать это в «system_error_report», но это не сработало: self.smtp_settings alter работает только в статической функции класса. Я не понимаю, почему)
Может кто-нибудь решить вопрос?
(1) Я не хочу раскрывать свои пароли и логины для общедоступных git-серверов, поэтому я использую файлы YAML, которые исключаются из отслеживания git. (2) Я только что проверил: изменение в почтовом ящике подкласса ActionMailer :: Base не изменяется. ActionMailer :: Base.smtp_settings –
Вы также можете использовать файлы YAML в файлах среды. – rodzyn