= Letter Opener {<img src="https://secure.travis-ci.org/ryanb/letter_opener.png" />}[http://travis-ci.org/ryanb/letter_opener]

Preview email in the default browser instead of sending it. This means you do not need to set up email delivery in your development environment, and you no longer need to worry about accidentally sending a test email to someone else's address.


== Rails Setup

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

  gem "letter_opener", :group => :development

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

  config.action_mailer.delivery_method = :letter_opener

Now any email will pop up in your browser instead of being sent. The messages are stored in <tt>tmp/letter_opener</tt>.

==== For Rails 2.3.x support

There is a fork that add support for Rails 2.3.x, in order to use that or just check it out you should go to https://github.com/cavi21/letter_opener

== Non Rails Setup

If you aren't using Rails, this can be easily set up with the Mail gem. Just set the delivery method when configuring Mail and specify a location.

  require "letter_opener"
  Mail.defaults do
    delivery_method LetterOpener::DeliveryMethod, :location => File.expand_path('../tmp/letter_opener', __FILE__)
  end

The method is similar if you're using the Pony gem:

  require "letter_opener"
  Pony.options = {
    :via => LetterOpener::DeliveryMethod,
    :via_options => {:location => File.expand_path('../tmp/letter_opener', __FILE__)}
  }

Alternatively, if you are using ActionMailer directly (without Rails) you will need to add the delivery method.

  require "letter_opener"
  ActionMailer::Base.add_delivery_method :letter_opener, LetterOpener::DeliveryMethod, :location => File.expand_path('../tmp/letter_opener', __FILE__)
  ActionMailer::Base.delivery_method = :letter_opener


== Remote Alternatives

Letter Opener uses {Launchy}[https://github.com/copiousfreetime/launchy] to open sent mail in the browser. This assumes the Ruby process is running on the local development machine. If you are using a separate staging server or VM this will not work. In that case consider using {Mailtrap}[http://mailtrap.io/] or {MailCatcher}[http://mailcatcher.me/].

In order to keep this project simple, I don't have plans to turn it into a Rails engine with an interface for browsing the sent mail but there is a {gem you can use for that}[https://github.com/fgrehm/letter_opener_web].


== Development & Feedback

Questions or problems? Please use the {issue tracker}[https://github.com/ryanb/letter_opener/issues]. If you would like to contribute to this project, fork this repository and run +bundle+ and +rake+ to run the tests. Pull requests appreciated.

Special thanks to the {mail_view}[https://github.com/37signals/mail_view/] gem for inspiring this project and for their mail template. Also thanks to {Vasiliy Ermolovich}[https://github.com/nashby] for helping manage this project.
