public
Description: Allows you to send an SMS in the form of an e-mail to a cell phone from your Rails application
Homepage: http://intridea.com/2008/3/30/sms-fu-quickly-easily-send-text-messages
Clone URL: git://github.com/brendanlim/sms-fu.git
sms-fu /
name age message
file CHANGELOG Wed Feb 18 17:26:00 -0800 2009 ... and I'm updating the changelog once again [brendanlim]
file MIT-LICENSE Sun Mar 30 13:10:05 -0700 2008 Initial import [brendanlim]
file README.rdoc Thu Jul 02 08:40:53 -0700 2009 Adding Mobistar (Belgium), T-Mobile (Netherland... [brendanlim]
file Rakefile Sun Mar 30 13:10:05 -0700 2008 Initial import [brendanlim]
file init.rb Wed Feb 18 17:25:05 -0800 2009 Some structural changes to SMS Fu [brendanlim]
file install.rb Fri Apr 18 23:17:51 -0700 2008 Adding in kajeet to carrier list and updated RE... [brendanlim]
directory lib/ Sat Feb 28 19:47:53 -0800 2009 fixin syntax error in helper [brentmc79]
directory tasks/ Sun Mar 30 13:10:05 -0700 2008 Initial import [brendanlim]
directory templates/ Thu Jul 02 08:47:27 -0700 2009 Adding support for SFR (France) [brendanlim]
directory test/ Mon Mar 31 15:18:40 -0700 2008 Fixed some of the tests [brendanlim]
file uninstall.rb Sun Mar 30 13:10:05 -0700 2008 Initial import [brendanlim]
directory views/ Sat Feb 28 17:54:46 -0800 2009 fixing some issues with 2.2 [brendanlim]

SMS Fu

Want to send an SMS from your Rails application? SMS Fu allows you to do just that. It allows you to send a text-message in the form of an e-mail to a cell phone on any of the supported carriers.

Supported Carriers (US & International):

Alltel, Ameritech, AT&T, Bell Atlantic, BellSouth Mobility, Beeline(UA), BlueSkyFrog, Boost Mobile, BPL Mobile, Cellular South, Claro (Brazil, Nicaragua), Comcast, Du, E-Plus, Etisalat, Fido, kajeet, Mobinil, Mobitel, Movistar, Metro PCS, O2, Orange, Powertel, PSC Wireless, Qwest, Rogers, Southern Link, Sprint, Suncom, T-Mobile (US/UK/Germany), Telefonica, Tracfone, Virgin Mobile, Verizon Wireless, Vodafone (UK, Egypt, Italy, Japan, Spain), and many more …

Opt-In Warning for Some International Carriers

Some International carriers require that their users subscribe to an Email to SMS feature before they are able to receive SMS messages this way. If one your users mentions that they are not receiving their messages, chances are it is due to this limitation.

Some carriers that need this include, Mobitel, Etisalat, T-Mobile (Netherlands), etc.

Setup Instructions

Add this this one line to the controller you want to be able to use SMS Fu in.

    class ExampleController < ApplicationController
      has_sms_fu
    end

Modify sms_fu.yml in your config folder with your reply-to e-mail address.

That’s it! Now you’re good to go.

Example Usage

  • You have to send in the phone number, without any non-numeric characters. The phone numbers must be 10 digits in length.
  • The two required parameters are the phone number and the phone carrier.
  • Here are some of the default carrier values:
      Alltel Wireless   =>  "alltel"
      AT&T/Cingular     =>  "at&t"
      Boost Mobile      =>  "boost"
      Sprint Wireless   =>  "sprint"
      T-Mobile US       =>  "t-mobile"
      T-Mobile UK       =>  "t-mobile-uk"
      Virgin Mobile     =>  "virgin"
      Verizon Wireless  =>  "verizon"
      Vodafone Tokyo    =>  "vodafone-jp-tokyo"
    
  • Check sms_fu.yml for a complete list of supported carriers, including international carriers as well.
      deliver_sms("5558675309","at&t","message")
    
  • If you want to set a custom from e-mail per SMS message, you can do so by doing the following.
      deliver_sms("5558675309","at&t","message", :from => "bob@test.com")
    
  • You can set the maximum length of the SMS message, which is not set by default. Most phones can only accept 128 characters. To do this just specify the limit option.
      deliver_sms("5558675309","at&t","message", :limit => 128)
    
  • You can retrieve just the formatted address to use in your own mailer.
      get_sms_address("5558675309","at&t") # => "5558675309@txt.att.net"
    

View Helpers

  • Retrieve a collection of all carriers
      <%= carrier_collection %>
    
  • Display a select box with mobile carriers
      <%= carrier_select %>
    
  • Display a custom select box with mobile carriers
      <%= carrier_select('user[carrier_name]', "Please choose a carrier") %>
    

Copyright © 2008 Brendan G. Lim, Intridea, Inc., released under the MIT license