๐Ÿ”ฒResend

This guide outlines how to install and configure the Resend Gem for sending transactional emails in your Lightning Rails project.

Step 1: Create a Resend Account

  1. Go to the Resend website.

  2. Sign up and create an account to access your API key.


Step 2: Add the Resend Gem

  1. Open your Gemfile.

  2. Add the Resend gem in your Gemfile:

    gem "resend"
  3. Run bundle install in your terminal to install the gem.

    bundle install

Step 3: Configure Your API Key

  1. Locate your API key from the Resend dashboard.

  2. Add the API key to your .env file:

    RESEND_API_KEY="re_***************"
  3. Ensure you have the .env file setup as specified in the quickstart guide.


Step 4: Set Up Action Mailer

  1. Development Environment: Open config/environments/development.rb and set the delivery method to :letter_opener for testing emails locally (The Gem is already installed in the boilerplate):

    config.action_mailer.delivery_method = :letter_opener
  2. Production Environment delivery method: Open config/environments/production.rb and set the delivery method to :resend:

    config.action_mailer.delivery_method = :resend
  3. API key in production

    1. Create a new initializer file: touch app/config/initializers/mailer.rb

    2. Paste your API key, and make sure your API key is set in your hosting provider:

      Resend.api_key = ENV["RESEND_API_KEY"]

(Optional) Welcome Email

Step 5: Create Your First Mailer

  1. Generate a new mailer:

    rails generate mailer UserMailer
  2. Open the newly created file app/mailers/user_mailer.rb and define a mailer method. For example:

    class UserMailer < ApplicationMailer
      def welcome_email
        @user = params[:user]
        mail(to: @user.email, subject: "Welcome to Our App!")
      end
    end

Step 6: Add HTML Content for the Email

  1. Create a corresponding view file for the mailer:

touch app/views/user_mailer/welcome_email.html.erb
  • Path: app/views/user_mailer/welcome_email.html.erb

  • Content example:

    <h1>Welcome to Our App, <%= @user.name %>!</h1>
    <p>Weโ€™re excited to have you on board.</p>

Step 7: Initialize and Send the Mailer

  1. Open the Rails console:

    rails console
  2. Initialize the mailer with a sample user object:

    u = User.new(name: "Derich", email: "derich@example.com")
    mailer = UserMailer.with(user: u).welcome_email
  3. Send the email:

    mailer.deliver_now!
  4. Add an auto-welcome message to welcome your users in user.rb

class User < ApplicationRecord
# [...]
  after_create :send_welcome_email

  def send_welcome_email
    UserMailer.with(user: self).welcome_email.deliver_now
  end
end

Step 8: Verify the Email

  • Check the recipient's inbox to confirm the email has been sent successfully.

  • If testing in development, verify the email opens correctly using the letter_opener gem.


That's it! Youโ€™ve successfully set up the Resend Gem for sending transactional an marketing emails in your Lightning Rails project, you can enjoy 100 free emails per month.

Last updated

Was this helpful?