class Forty::Mailer

Attributes

enabled[RW]
smtp_address[RW]
smtp_authentication[RW]
smtp_encryption[RW]
smtp_host[RW]
smtp_password[RW]
smtp_port[RW]
smtp_username[RW]
templates[RW]

Public Instance Methods

send_welcome(recipient, username, password) click to toggle source
# File lib/forty/configuration.rb, line 42
def send_welcome(recipient, username, password)
  mail = ::Mail.new
  mail.delivery_method :smtp, {
    smtp_envelope_from: @smtp_address,
    address: @smtp_host,
    port: @smtp_port.to_i,
    user_name: @smtp_username,
    password: @smtp_password,
    authentication: @smtp_authentication,
    encryption: @smtp_encryption,
  }
  mail.from @smtp_address
  mail.to recipient
  mail.subject "#{Forty.database_configuration.name.to_s.length == 0 ? '' : Forty.database_configuration.name + ' '}DB Credentials (User: #{username})"

  parameters = binding
  parameters.local_variable_set(:database_name, Forty.database_configuration.name)
  parameters.local_variable_set(:username, username)
  parameters.local_variable_set(:password, password)
  parameters.local_variable_set(:host, Forty.database_configuration.host)
  parameters.local_variable_set(:port, Forty.database_configuration.port)
  parameters.local_variable_set(:database, Forty.database_configuration.database)

  if @enabled
    mail.body ERB.new(File.read(@templates[:user_created])).result(parameters)
    Forty.configuration.logger.info('Sending \'user_created\' email to ' + recipient)
    mail.deliver
    Forty.configuration.logger.info('Sent \'user_created\' email successfully')
  else
    Forty.configuration.logger.warn('Mail not enabled, skipped sending welcome email. You will need to regenerate a password for user ' + username + '.')
  end
end