Created: 2008-07-26 04:06
Updated: 2018-07-16 19:54
License: mit



Adds an email method to your email handlers, that receives a hash of values to create your email.

For example:

post "/signup" do
  # sign up the user, and then:
  email :to      =>, 
        :from    => "", 
        :subject => "Welcome to Awesomeness!",
        :body    => haml(:some_template)


This plugin is very dirty yet :) Since it's just a port to Sinatra of Merb::Mailer. So the configuration is not Sinatra-y, yet. But we'll get to that.

Using SMTP

Sinatra::Mailer.config = {
  :host   => '',
  :port   => '25',
  :user   => 'user',
  :pass   => 'pass',
  :auth   => :plain # :plain, :login, :cram_md5, the default is no auth
  :domain => "localhost.localdomain" # the HELO domain provided by the client to the server

Using Gmail SMTP

You need smtp-tls, a gem that improves net/smtp to add support for secure servers such as Gmail.

require "smtp-tls"

Sinatra::Mailer.config = {
  :host => '',
  :port => '587',
  :user => '',
  :pass => 'pass',
  :auth => :plain

Make sure that when you call your email method you pass the :text option and not :body.

Using sendmail

Sinatra::Mailer.config = {:sendmail_path => '/somewhere/odd'}
Sinatra::Mailer.delivery_method = :sendmail


This has been blatantly adapted from Merb::Mailer, so all credit is theirs, I just ported it to Sinatra.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more