Skip to content

Instantly share code, notes, and snippets.

@acwright
Created February 29, 2012 21:40
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save acwright/1944639 to your computer and use it in GitHub Desktop.
Save acwright/1944639 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 => "test@example.com",
:from => "test@example.com",
: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
@sir-pinecone
Copy link

Thanks!

@midhunkrishna
Copy link

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment