module Marfa::Helpers::Email

Provide helpers for Sinatra controllers

Public Instance Methods

send_email(options) click to toggle source

Send email using mailbox config @param options [Hash] - params @example:

send_email({ template: 'mail', to: 'user@example.com', mailbox: :admin, subject: 'Hello', data: { title: 'Hello!' } })
# File lib/marfa/helpers/email.rb, line 13
def send_email(options)
  mailbox = options[:mailbox] || :default

  config = Marfa.config.email[mailbox]
  return if config.nil?

  template_engine = Marfa.config.template_engine || :haml
  body = render(template_engine, :"#{options[:template]}", locals: options[:data], layout: false)

  Pony.options = {
    via: :smtp,
    via_options: config
  }

  mail = {
    to: options[:to],
    subject: options[:subject],
    html_body: body
  }

  mail[:from] = config[:from] unless config[:from].nil?

  Pony.mail(mail)
end