EmailFuse Ruby and Rails SDK


Installation

To install EmailFuse Ruby and Rails SDK, simply execute the following command in a terminal:

Via RubyGems:

gem install emailfuse

Via Gemfile:

gem 'emailfuse'

Setup

require "emailfuse"
EmailFuse.api_key = ENV["EMAILFUSE_API_KEY"]

or

require "emailfuse"
EmailFuse.configure do |config|
  config.api_key = ENV["EMAILFUSE_API_KEY"]
end

Example

require "emailfuse"

EmailFuse.api_key = ENV["EMAILFUSE_API_KEY"]

params = {
  "from": "[email protected]",
  "to": ["[email protected]", "[email protected]"],
  "html": "<h1>Hello World</h1>",
  "subject": "Hey"
}
r = EmailFuse::Emails.send(params)
puts r

Rails and ActionMailer support

This gem can be used as an ActionMailer delivery method, add this to your config/environments/environment.rb file.

config.action_mailer.delivery_method = :emailfuse

Configuration Options

You can configure the API key and host in two ways:

Option 1: Global Configuration (Initializer)

Create or update your mailer initializer file:

# /config/initializers/emailfuse.rb
EmailFuse.configure do |config|
  config.api_key = ENV["EMAILFUSE_API_KEY"]
  config.base_url = "https://api.emailfuse.net"  # optional, defaults to https://api.emailfuse.net
end

Option 2: Rails Mailer Settings

Configure directly in your environment file:

# config/environments/production.rb
config.action_mailer.delivery_method = :emailfuse
config.action_mailer.emailfuse_settings = {
  api_key: ENV["EMAILFUSE_API_KEY"],
  host: "https://api.emailfuse.net"  # optional
}

Settings configured via emailfuse_settings take precedence over the global configuration, allowing you to use different credentials per environment.

Sending Emails

After configuration, you can use deliver_now!:

mailer = EmailMailer.email(self)
response = mailer.deliver_now!

puts response[:id]
# => "b8f94710-0d84-429c-925a-22d3d8f86916"