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-smtp-example


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

Last synced: 5 days ago
JSON representation

Awesome Lists containing this project

README

        

This is an example rails app on how to configure and use the [Resend SMTP Support](https://resend.com/docs/send-with-rails) with Rails Action Mailer

# Setup

Add these lines of code into your environment config file.

```ruby
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
}
```

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