🏮Ruby on Rails
Enveloop provides the Enveloop Ruby wrapper for our Enveloop API. It simplifies configuring and sending messages (email & SMS/text) via Enveloop inside your Ruby on Rails apps.
Provided are some quick docs for setting up Enveloop inside your Ruby on Rails app and interacting with the Enveloop Ruby gem.
Installing the Enveloop Ruby Gem
There are a couple of ways to get started. Using RubyGems, you can install it locally with the following command:
$ gem install enveloop
Additionally, you can add the following to your application's Gemfile:
gem 'enveloop'
After doing so, you can run the following terminal command:
$ bundle install
Using the Enveloop Gem
The Enveloop Gem includes helpful methods to interact with the Enveloop API, including:
send_message
template_info
We'll talk about how to use some of these methods in the notes to follow.
Configuring Enveloop in your Rails app
Update your Initializer
Add/update the following lines in your respective Rails environments file.
# remember to never include production keys in files you check into repos.
ENV['ENVELOOP_API_KEY'] = 'ENVELOOP_API_KEY'
config.action_mailer.delivery_method = :enveloop
config.action_mailer.enveloop_settings = {
api_key: ENV['ENVELOOP_API_TOKEN']
}
Create an Enveloop Mailer
From your command line, use a Rails generator to create a new Enveloop Mailer.
$ rails generate mailer EnveloopMailer
Modify your Enveloop Mailer to set up a Connection
Now that the mailer is created, you can modify it and add in a custom method, based on your application, to call the send_message
method in the Enveloop API.
class EnveloopMailer < ActionMailer::Base
include Rails.application.routes.url_helpers
def new_comment_email(recipient, comment)
enveloop.send_message(
template: 'new-comment',
to: recipient,
from: '[email protected]',
subject: subject,
template_variables:{
account_url: 'https://myapp.com',
user_comment: comment
}
)
end
private
def enveloop
@enveloop ||= Enveloop::Client.new(api_key: ENV['ENVELOOP_API_KEY'])
end
end
Send a Message from your Rails app
Now, all that is left is to make a call to send a message, via Enveloop, whenever you need it.
EnveloopMailer.new_comment_email(
@comment.user_email_address,
@comment.body
).deliver_now
Additional Information
You can find additional information for other methods, sending text/SMS messages, and more by viewing the Enveloop Language page for Ruby.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/enveloophq/enveloop-ruby. Additional information, including license, development procedures, and Code of Conduct are available in the source repository documentation.
Last updated