Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

a Sinatra Application to browse the email sent by letter_opener

Topics

Resources

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages