Skip to content

Latest commit

 

History

History
89 lines (71 loc) · 2.18 KB

README.md

File metadata and controls

89 lines (71 loc) · 2.18 KB

This is an example rails app on how to configure and use the Resend Rails SDK with Rails Action Mailer

Setup

Add the gem to your Gemfile:

# Gemfile
gem "resend"

Create a /config/initializers/mailer.rb file and add the following configuration line.

Resend.api_key = ENV['RESEND_API_KEY']

Add these lines of code into your environment config file.

# Setup resend as the email method
config.action_mailer.delivery_method = :resend

Checkout the Rails example app with SMTP setup for SMTP support example.

Create your mailer class

# /app/mailers/user_mailer.rb
class UserMailer < ApplicationMailer
  default from: '[email protected]' # this domain must be verified with Resend
  def welcome_email
    @user = params[:user]
    attachments["invoice.pdf"] = File.read(Rails.root.join("resources","invoice.pdf"))
    @url  = "http://example.com/login"
    mail(
      to: ["[email protected]"],
      cc: ["[email protected]"],
      bcc: ["[email protected]"],
      reply_to: "[email protected]",
      subject: "Hello from Rails",
    )
  end
end

Create your ERB Template for UserMailer

# /app/views/welcome_email.html.erb
<!DOCTYPE html>
<html>
  <head>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
  </head>
  <body>
    <h1>Welcome to example.com, <%= @user.name %></h1>
    <p>
      You have successfully signed up to example.com,
    </p>
    <p>
      To login to the site, just follow this link: <%= @url %>.
    </p>
    <p>Thanks for joining and have a great day!</p>
  </body>
</html>

Now you can send your emails, lets send it using Rails console.

bundle exec rails c

Initialize your UserMailer class, this should return a UserMailer instance.

u = User.new name: "derich"
mailer = UserMailer.with(user: u).welcome_email
# => #<Mail::Message:153700, Multipart: false, Headers: <From: [email protected]>, <To: [email protected], [email protected]>, <Subject: Hello World>, <Mime-Version: 1.0>...

You can now send emails with:

mailer.deliver_now!
# => {:id=>"a193c81e-9ac5-4708-a569-5caf14220539", :from=>....}