DeliverHQ

Rubygem wrapper for deliverHQ API.

Build Status Coverage Status

Installing

gem install deliverhq

or

(in Gemfile or .gemspec)

gem 'deliverhq'

then

require 'deliverhq'

Usage

Authentication

Set your API ID and key using the two environment variables, DELIVERHQ_ID and DELIVERHQ_KEY. This can be found in the "Setup" section of your DeliverHQ account.

Sending E-Mail

Deliverhq::send(from: '[email protected]', to: '[email protected]', subject: 'Hello!', plain_body: 'This is a test.')
#=> #<Deliverhq::Message:0x007fc79...

Domains

# Retrieve all domains associated with your account
Deliverhq::Domain.all
#=> [#<Deliverhq::Domain:0x007fc79c1..]

# Create a new domain
domain = Deliverhq::Domain.create(name: 'test.com')
#=> #<Deliverhq::Domain:0x007fc79c134a78 @id=7970, @account_id=506, @name="test.com", @verification_token="punqv7acjm", @verified_at=nil>

# And remove it
domain.destroy
#=> true

Mailboxes

# Retrieve all mailboxes associated with your account
Deliverhq::Mailbox.all
#=> [#<Deliverhq::Mailbox:0x007fc79c2...

# Create a new mailbox
mailbox = Deliverhq::Mailbox.create(name: 'Incoming Support',
        check_spam: 0,
        destination_address: 'http://app.sirportly.com/modules/deliver2/accept',
        destination_type: 'http',
        domain_id: 6707,
        encoding:'post',
        format: 'full',
        reply_stripping: false,
        partial_address: 'support')

# And remove it
mailbox.destroy
#=> true

Messages

# Retrieve messages by page
page = 1
Deliverhq::Message.all(page)
#=> [#<Deliverhq::Message:0x007f88e29...
page = 2
Deliverhq::Message.all(page)
#=> [#<Deliverhq::Message:0x008ef62a9...
page = 999
Deliverhq::Message.all(page)
#=> []

# Show individual message
Deliverhq::Message.find(226945)
#=> #<Deliverhq::Message:0x007f88e2998a28 @id=222697445, @envelope_to ...

Handling Errors

If the API reports an error, the gem will raise the message as an exception of type Deliverhq::RequestError. e.g.

domain = Deliverhq::Domain.create(name: 'test.com')
#=> #<Deliverhq::Domain:0x007fc79c134a78 @id=7970, @account_id=506, @name="test.com", @verification_token="punqv7acjm", @verified_at=nil>

domain.destroy
#=> true

# Try to remove it after it's been removed
domain.destroy
#=> Deliverhq::RequestError: Server responded with 404: {"error":"Not Found"}

Further Reading

You can learn more about the DeliverHQ API here: http://deliver.apidoc.io/.