Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
# frozen_string_literal: true

require 'aws-sdk-ses'
require 'logger'
require 'mail'

module FacultyAWS
  # Class to deal with outgoing mail
  class Mail
    def initialize(source_arn:, development: false, from: nil)
      @development = development
      @from = from
      @source_arn = source_arn
    end

    def send(mail)
      mail.from ||= @from if @from
      if @development
        logger.info(mail)
      else
        ses.send_raw_email(mail_to_ses(mail))
      end
    end

    private

    def mail_to_ses(mail)
      {
        from_arn: @source_arn,
        raw_message: {
          data: mail.to_s
        }
      }
    end

    def logger
      @logger ||= Logger.new $stdout
    end

    def ses
      @ses ||= Aws::SES::Client.new
    end
  end
end