rails g UserMailer class UserMailer < ActionMailer::Base default from: "fred@fred.com" def confirm_user(user) @user = user @url = 'http://fred.com/login' mail(to: @user.email, subject: 'Welcome to Fred Site') end end Text version of greeting email (in views/UserMailer/welcome_email.text.erb ) Welcome to example.com, <%= @user.name %> =============================================== You have successfully signed up to example.com, your username is: <%= @user.login %>. To login to the site, just follow this link: <%= @url %>. Thanks for joining and have a great day! HTML version (in views/UserMailer/welcome_email.html.erb)

Welcome to example.com, <%= @user.name %>

You have successfully signed up to example.com, your username is: <%= @user.login %>.

To login to the site, just follow this link: <%= @url %>.

Thanks for joining and have a great day!

Then the configuration files: for local testing in config/environment/development.rb put something like this: config.action_mailer.delivery_method = :sendmail # Defaults to: # config.action_mailer.sendmail_settings = { # location: '/usr/sbin/sendmail', # arguments: '-i -t' # } config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.default_options = {from: 'no-replay@example.com'} You will use the config/environment/production.rb file for deployment to Heroku, and use the environment variables suggested by SendGrid, or whoever you choose for your 3rd party mailer service.