Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/resend/resend-rails-example

Example Rails APP showcasing how to use the Resend Rails SDK with Active Mailer
https://github.com/resend/resend-rails-example

Last synced: 5 days ago
JSON representation

Example Rails APP showcasing how to use the Resend Rails SDK with Active Mailer

Awesome Lists containing this project

README

        

This is an example rails app on how to configure and use the [Resend Rails SDK](https://github.com/drish/resend-ruby) with Rails Action Mailer

# Setup

Add the gem to your Gemfile:

```ruby
# 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.

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

Checkout the [Rails example app with SMTP setup](https://github.com/resendlabs/resend-rails-smtp-example) for SMTP support example.

Create your mailer class

```ruby
# /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`

```ruby
# /app/views/welcome_email.html.erb





Welcome to example.com, <%= @user.name %>



You have successfully signed up to example.com,



To login to the site, just follow this link: <%= @url %>.


Thanks for joining and have a great day!


```

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

```sh
bundle exec rails c
```

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

```ruby
u = User.new name: "derich"
mailer = UserMailer.with(user: u).welcome_email
# => #, , , ...
```

You can now send emails with:

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