Following is the script that I am using from last several weeks for sending SMS's from command line.
Note : This has been taken from Arulalan.T Blog[0] from here : [1] .
[0] : http://tuxcoder.wordpress.com/
[1] : http://tuxcoder.wordpress.com/2011/06/14/send-free-sms-in-india-via-way2sms-login-from-terminal-using-perl-code/
?Download download.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | #!/usr/bin/perl ############################################################################################### # source link : http://digitalpbk.com/2009/12/perl-script-send-free-sms-any-mobile-number-india-using-way2sms # From CPAN : from CPAN link itself you can download the source for way2sms. # # Modified by : Arulalan.T (arulalant@gmail.com) # # Goal : send sms through way2sms.com with few easy options. So I modified this below code accordingly. # # Note : This should work only to the Indian regions cell phone numbers only # # Usage : # Save this file in the path /usr/bin/sms and make it as excutable by setting permission # 1. $ sms 9876543210 'hello' # 2. $ sms 9876543210,9876501234,9988776655 'hai dude' # 3. $ sms -f sms-nos-list-file 'message' # sms-nos-list-file is a text file, that contains the 10 digit phone nos with new line character. # i.e. each line must have only one phone no. # We no need to use +91 or 0 prefix no. So use only 10 digit phone no alone. #################################################################################################### use WWW::Mechanize; use Compress::Zlib; my $mech = WWW::Mechanize->new(); my $username = "way2sms login username"; #fill in username here my $keyword = "password"; #fill in password here my ($text,$mobile,$option); my @mobilenos; $option = $ARGV[0]; if ( $option == "-f") { # reading file and collecting the nos my $smslistfile = $ARGV[1]; $text = $ARGV[2]; open(FILE,$smslistfile) or die "Can not open file\n"; @mobilenos = ; close FILE; } else{ my $morenos = $ARGV[0]; if (length($morenos) > 10) { # splitting nos with comma seperated in the first arg @mobilenos = split(',',$morenos); } else { # for single phone no @mobilenos = $morenos; } # collecting message to send $text = $ARGV[1]; } $deb = 1; print "Total Character of message is ".length($text)."\n" if($deb); $text = $text."\n\n\n\n\n" if(length($text) < 135); $mech->get("http://wwwl.way2sms.com/content/index.html"); unless($mech->success()) { exit; } $dest = $mech->response->content; print "Fetching...\n" if($deb); if($mech->response->header("Content-Encoding") eq "gzip") { $dest = Compress::Zlib::memGunzip($dest); $mech->update_html($dest); } $dest =~ s/ <form action="..\/auth.cl" name="loginForm">update_html($dest); $mech->form_with_fields(("username","password")); $mech->field("username",$username); $mech->field("password",$keyword);</form>print "Loggin...\n" if($deb); $mech->submit_form(); $dest= $mech->response->content; if($mech->response->header("Content-Encoding") eq "gzip") { $dest = Compress::Zlib::memGunzip($dest); $mech->update_html($dest); } foreach $mobile (@mobilenos){ # for loop begins chomp($mobile); print "\nMessage sending to ".($mobile)."\n"; $mech->get("http://wwwl.way2sms.com//jsp/InstantSMS.jsp?val=0"); $dest= $mech->response->content; if($mech->response->header("Content-Encoding") eq "gzip") { $dest = Compress::Zlib::memGunzip($dest); $mech->update_html($dest); } print "Sending ... \n" if($deb); $mech->form_with_fields(("MobNo","textArea")); $mech->field("MobNo",$mobile); $mech->field("textArea",$text); $mech->submit_form(); if($mech->success()) { print "Done \n" if($deb); } else { print "Failed \n" if($deb); exit; } $dest = $mech->response->content; if($mech->response->header("Content-Encoding") eq "gzip") { $dest = Compress::Zlib::memGunzip($dest); #print $dest if($deb); } if($dest =~ m/successfully/sig) { print "Message sent successfully \n" if($deb); } # foreach loop ends } print "Message sent to all the numbers\n Bye.\n"; exit; #EOF |