Important
This repository has been consolidated into the new resend-examples monorepo, which contains updated examples for all languages and frameworks.
This is an example rails app on how to configure and use the Resend Rails SDK with Rails Action Mailer
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 = :resendCheckout 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: 'you@domain.io' # 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: ["to@email.com"],
cc: ["cc@email.com"],
bcc: ["cc@email.com"],
reply_to: "to@email.com",
subject: "Hello from Rails",
)
end
endCreate 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 cInitialize 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: you@domain.io>, <To: email@example.com, email2@example.com>, <Subject: Hello World>, <Mime-Version: 1.0>...You can now send emails with:
mailer.deliver_now!
# => {:id=>"a193c81e-9ac5-4708-a569-5caf14220539", :from=>....}