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 = :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=>....}