Skip to content

Instantly share code, notes, and snippets.

@fsword
Forked from acwright/gist:1944639
Created November 28, 2012 13:29
Show Gist options
  • Save fsword/4161295 to your computer and use it in GitHub Desktop.
Save fsword/4161295 to your computer and use it in GitHub Desktop.
Sinatra / ActionMailer / Sendgrid / Heroku
require 'sinatra'
require 'action_mailer'
class Mailer < ActionMailer::Base
def contact
mail(
:to => "[email protected]",
:from => "[email protected]",
:subject => "Test") do |format|
format.text
format.html
end
end
end
configure do
set :root, File.dirname(__FILE__)
set :views, File.join(Sinatra::Application.root, 'views')
set :haml, { :format => :html5 }
if production?
ActionMailer::Base.smtp_settings = {
:address => "smtp.sendgrid.net",
:port => '25',
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => ENV['SENDGRID_DOMAIN'],
}
ActionMailer::Base.view_paths = File.join(Sinatra::Application.root, 'views')
else
ActionMailer::Base.delivery_method = :file
ActionMailer::Base.file_settings = { :location => File.join(Sinatra::Application.root, 'tmp/emails') }
ActionMailer::Base.view_paths = File.join(Sinatra::Application.root, 'views')
end
end
post '/mail' do
email = Mailer.contact
email.deliver
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment