Rails Courrier

Rails integration for Courrier email delivery

Installation

Add to your Gemfile:

bundle add rails_courrier
Rails Designer logo

Sponsored By Rails Designer

Setup

Generate the initializer:

bin/rails generate courrier:install

This creates config/initializers/courrier.rb.

Generate an email:

bin/rails generate courrier:email Order

This creates app/emails/order_email.rb.

Mount the engine for inbox previews:

# config/routes.rb
mount Courrier::Engine => "/courrier"

Usage

Send emails

OrderEmail.deliver to: "recipient@example.com"

Deliver later via ActiveJob

OrderEmail.deliver_later to: "recipient@example.com"

Configure queue options in the email class:

class OrderEmail < Courrier::Email
  enqueue queue: "emails", wait: 5.minutes

  def subject = "Your order is ready!"
  #end

Inbox provider

Preview emails in your browser:

# config/initializers/courrier.rb
Courrier.configure do |config|
  config.email = { provider: "inbox" }
end

Enable auto-open:

config.email = { provider: "inbox" }
config.inbox.auto_open = true

Clear inbox files:

bin/rails courrier:clear

URL helpers

Rails Courrier automatically includes Rails URL helpers in your email classes:

class OrderEmail < Courrier::Email
  def text
    "View your order: #{order_url(token: "abc123")}"
  end
end

Documentation

See the Courrier README for full configuration, providers, layouts, templates and more.