Я использую свою учетную запись Gmail Apps для домена для отправки электронной почты в моем приложении rails для стандартных автоматических писем (регистрация пользователя, забытый пароль, уведомление администратора о новых комментариях и т. Д.), Но я беспокоюсь о 500 электронных письмах за дневной лимит установлен Google.
Google предлагает один из способов преодоления ограничения - использовать несколько учетных записей пользователей.
Итак, я настроил 10 дополнительных учетных записей пользователей gmail (noreply1, noreply2, noreply3 и т. Д.) - я хотел бы отследить, когда какая-либо из этих учетных записей отправила 500 писем в течение 24 часов, и соответственно использовать свободную учетную запись ,
Как динамически установить значение :user_name
в ActionMailer::Base.smtp_settings
?
Вот мои текущие настройки - ПРИМЕЧАНИЕ: это отправляет из «noreply1» каждый раз, хотя я явно устанавливаю: user_name и: from в «noreply2»:
--- development.rb ---
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "mydomain.com",
:authentication => :plain,
:user_name => "noreply1@mydomain.com",
:password => "password"
}
--- account.rb --- (MODEL, called via a callback)
after_create :send_welcome_email
...
def send_welcome_email
#ActionMailer::Base.smtp_settings[:user_name] = 'noreply2@mydomain.com'
ActionMailer::Base.smtp_settings.merge!({:user_name => "noreply2@mydomain.com"})
SubscriptionNotifier.deliver_welcome(self)
end
--- subscription_notifier.rb --- (MODEL)
class SubscriptionNotifier < ActionMailer::Base
def welcome(account)
@sent_on = Time.now
@subject = "Welcome to the App"
@recipients = account.email
@from = "noreply2@mydomain.com"
@body = { :account => account }
end
end