David Eisinger


Elsewhere > Introducing: EmailLabsClient

Posted 2008-07-31 on viget.com

On my latest project, the client is using EmailLabs to manage their mailing lists. To simplify interaction with their system, we’ve created EmailLabsClient, a small Ruby client for the EmailLabs API. The core of the program is the send_request method:

def self.send_request(request_type, activity)
  xml = Builder::XmlMarkup.new :target => (input = '')
  
  xml.instruct!
  
  xml.DATASET do
    xml.SITE_ID SITE_ID
    yield xml
  end
  
  Net::HTTP.post_form(
    URI.parse(ENDPOINT),
    :type => request_type,
    :activity => activity,
    :input => input
  )
end 

Then you can make API requests like this:

def self.subscribe_user(mailing_list, email_address)
  send_request('record', 'add') do |body|
    body.MLID mailing_list
    body.DATA email_address, :type => 'email'
  end
end 

If you find yourself needing to work with an EmailLabs mailing list, check it out. At the very least, you should get a decent idea of how to interact with their API. It’s up on GitHub, so if you add any functionality, send those patches our way.