Project

goatmail

0.01
No commit activity in last 3 years
No release in over 3 years
a Sinatra Application to browse the email sent by letter_opener
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Goatmail

Gem Version Build Status Coverage Status Code Climate Dependency Status

A Sinatra-based frontend to the letter_opener.
This provides almost the same feature as the letter_opener_web.
letter_opener_web is Rails based application. It's very useful. But, I wanted a more simple application.

Try it out in https://goatmail.herokuapp.com/.

Installation

First add the gem to your development environment and run the bundle command to install it.

gem 'goatmail', :group => :development

Rails Setup

Then set the delivery method in config/environments/development.rb

  # If you will specify a message file location.
  # Goatmail.location = Rails.root.join('tmp/goatmail')
  config.action_mailer.delivery_method = :goatmail

And mount app, add to your routes.rb

Sample::Application.routes.draw do
  if Rails.env.development?
    mount Goatmail::App, at: "/inbox"
  end
end

If you use the Rails 5, Please use a combination with the Sinatra 2.0 later version.

Padrino Setup

Then set the delivery method and mount app in config/apps.rb

Padrino.configure_apps do
  if Padrino.env == :development
    # If you will specify a message file location.
    # Goatmail.location = Padrino.root('tmp/goatmail')
    set :delivery_method, Goatmail::DeliveryMethod => {}
  end
end

if Padrino.env == :development
  Padrino.mount('Goatmail::App').to('/inbox')
end
Padrino.mount('SampleProject::App', :app_file => Padrino.root('app/app.rb')).to('/')

If an exception occurs that "Gem Load Error is: undefined method 'version' for Padrino:Module", please try this:

# Gemfile
gem 'goatmail', :group => :development, :require => false

# config/boot.rb
Padrino.before_load do
  require 'goatmail'
end

Sinatra Sample

# app.rb
module Sample
  class App < Sinatra::Base
    configure do
      set :root, File.dirname(__FILE__)
      if ENV['RACK_ENV'] == 'development'
        Goatmail.location = File.join("#{root}/tmp/goatmail")
        Mail.defaults do
          delivery_method Goatmail::DeliveryMethod
        end
      end
    end
  end
end
# config.ru
map '/' do
  run Sample::App.new
end

if ENV['RACK_ENV'] == 'development'
  map '/inbox' do
    run Goatmail::App.new
  end
end

See: Sample Applications

Contributing

  1. Fork it ( https://github.com/tyabe/goatmail/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request