StupidSMS

Send bulk SMS using Twilio.

Installation

Add this line to your application's Gemfile:

gem 'stupid_sms'

And then execute:

$ bundle

Or install it yourself as:

$ gem install stupid_sms

Usage

Configuration

StupidSMS.configure do |config|
  config.from_number  = '...' # or set env var TWILIO_ACCOUNT_SID
  config.auth_token   = '...' # or set env var TWILIO_AUTH_TOKEN
  config.  = '...' # or set env var TWILIO_NUMBER
  config.country_code = 'SE' # two character country code (SE is the default)
end

Send one SMS:

StupidSMS.send(recipient: recipient, body: body)

Send SMS in bulk:

To send SMS in bulk you construct a special CSV file. The only required column is phone. You include a template string that can include dynamic content, i.e 'Hi %first_name'. If you do include such content in the template we'll look for a column in the CSV-file with the name first_name.

:warning: You need to escape '%' chars with '%%' otherwise '%': malformed format string - %! (ArgumentError) will be raised.

file.csv:

phone,first_name
+46735000000,Jacob
csv = File.read('file.csv')
template = 'Hi %{first_name}!'
StupidSMS.send_in_bulk(csv_string: csv, template: template)

full options:

csv = File.read('file.csv')
StupidSMS.send_in_bulk(
  csv_string: csv,
  template: 'Hello World!',
  delimiter: ',',
  dry_run: false,
  max_threads: 5
)

CLI

stupid_sms --csv testfile.csv --template template.txt --dry-run=true
Usage: stupid_sms [options]
        --csv=file.csv               CSV file path (a phone header column is required)
        --template=template.txt      Template file path (note: you need to escape % with %%)
        --delimiter=;                CSV delimiter (default: ,)
        --country-code=se            Country code (default: se)
        --max-threads=5              Max parallel threads (default: 5)
        --from-number="+46735000000" Twilio from number
        --account-sid=se             Twilio account SID
        --auth-token=XXXYYYZZZ       Twilio auth token
        --[no-]dry-run               Dry run (default: true)
    -h, --help                       How to use

Development

After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/buren/stupid_sms.

License

MIT License