Skip to main content
Resend Docs
current

Search documentation

Type to search this documentation.

On this pageOverview

Send emails using Rails with SMTP

Learn how to integrate Rails with Resend SMTP.

Before you start, you'll need:

  1. Setup your environment

    Add these lines of code into your environment config file.

    config/environments/environment.rb
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
      :address   => 'smtp.resend.com',
      :port      => 465,
      :user_name => 'resend',
      :password  => ENV['RESEND_API_KEY'],
      :tls => true
    }
  2. Send email using Rails Action Mailer

    Then create a UserMailer class definition.

    app/mailers/user_mailer.rb
    class UserMailer < ApplicationMailer
      default from: 'Acme <onboarding@resend.dev>' # this domain must be verified with Resend
      def welcome_email
        @user = params[:user]
        @url = 'http://example.com/login'
        mail(to: ["delivered@resend.dev"], subject: 'hello world')
      end
    end

    And create your ERB email template.

    app/views/user_mailer/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 log in to the site, just follow this link: <%= @url %>.</p>
        <p>Thanks for joining and have a great day!</p>
      </body>
    </html>

    Initialize your UserMailer class. This returns an ActionMailer::MessageDelivery instance.

    Ruby
    u = User.new name: "derich"
    mailer = UserMailer.with(user: u).welcome_email
    
    # => #<ActionMailer::MessageDelivery:153700, @mail_message=#<Mail::Message...>, @processed_mailer=...>

    Finally, you can now send emails using the deliver_now! method:

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

Rails SMTP Example

See the full source code.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu