Report abuse

class Mailer < ActionMailer::Base
  NUMBER_OF_ACCOUNTS = 10
  START = 100

  ActionMailer::Base.smtp_settings = {
    :address: smtp.gmail.com,
    :port: 587,
    :user_name: nothing@example.com,
    :password: nothing@example.com,
    :authentication: :login
  }

  def set_defaults(email_address, sent_at=Time.now)
    set_smtp_settings
    @from    = %{"My App" <#{ActionMailer::Base.smtp_settings[:user_name]}>}
    @sent_on = sent_at
    @headers = {}
    @recipients = email_address
  end

  def set_smtp_settings(email_type)
    number = rand(NUMBER_OF_ACCOUNTS + 1).floor + START
    ActionMailer::Base.smtp_settings[:user_name] = "system#{number}@example.com"
    ActionMailer::Base.smtp_settings[:password]  = password_algorithm || password[:hash]
  end
end