API Mailer

The whys

  • SMTP is silly, let's use flexibly APIs instead
  • It doesn't use the huge, bloated Mail gem
  • It doesn't use the huge, bloated SMTP gem
  • Its pluggable

Usage

# app/mailers/mailing_base.rb
class MailingBase < ApiMailer::Base
  def build_message
    # This method must be defined, it builds the package for deliver
    # here is an example json object
    headers.extract(:to, :from, :subject).merge(html: responses.html_part.body.to_s).to_json
  end

  def deliver_message(message)
    #send the message somewhere using POST or whatever
  end
end

# app/mailers/my_mailer.rb
class MyMailer < MailingBase
  def cool_message_bro(user)
    @user = user
    mail(to: "[email protected]", 
         from: "[email protected]",
         subject: "Cool Message for you, Bro",
         other_header: "value")
  end
end

# app/views/my_mailer/cool_message_bro.html.erb
Cool message, <%= @user.name %>!

# sending mail
MyMailer.cool_message_bro(user).deliver

Configuration

Coming Soon!