exetel_sms: Send and receive messages via Exetel's SMS API

gem install 'exetel_sms'

Send a message:

require 'exetel_sms'
config = ExetelSms::Config.new('username', 'password')
sender = ExetelSms::Sender.new(config)
result = sender.send(
  'destination mobile number',
  'from string',
if result.success?
  puts "Message sent successfully!"
  puts "Error sending message: #{result[:notes]}"

Was it really sent?

retriever = ExetelSms::Retriever.new(config)
result = retriever.check_sent('reference_number')
=> 'Sent'

Receiving messages from a Virtual Mobile Number

receiver = ExetelSms::Receiver.new(config)
if result = receiver.receive('my virtual mobile number')
  puts "Received from #{result[:from_mobile_number]}: #{result[:message]}"

Then you can delete the messages with ExetelSms::Deleter

Credit Check - also useful as a ping before sending

checker = ExetelSms::CreditCheck.new(config)
if result = checker.get_credit_limit
  puts "Credit limit is #{result[:limit]}"

Test API - test responses without making actual HTTP calls

good = ExetelSms::Client.with_test_api { retriever.check_sent('1') }
good[:message_status] # => 'Delivered'

bad = ExetelSms::Client.with_test_api(:fail) { retriever.check_sent('1') }
bad[:message_status] # => 'Failed'

Sent messages end up in ExetelSms::Client.sent_messages array. See test/ for more examples.

Contact the author

Andrew Snow <andrew@modulus.org> Andys^ on irc.freenode.net @andy_snow on Twitter