#!/usr/bin/perl -w #Copyright (c) 2001 Giulio Motta. All rights reserved. #This program is free software; you can redistribute it and/or #modify it under the same terms as Perl itself. package WWW::SMS; use Carp (); $VERSION = '0.01'; sub new { my $class = shift; my $self; if (@_ == 4) { my ($intpref, $prefix, $telnum, $smstext) = @_; $self = bless { 'intpref' => $intpref, 'prefix' => $prefix, 'telnum' => $telnum, 'smstext' => $smstext }, $class; } else { $self = bless{}, $class; } } sub send_sms { my ($class, $sms, $gateway) = @_; my $gate = "${class}::${gateway}"; eval "use $gate qw(" . '%PREFIXES _send)'; Carp::croak("not such a gateway available: $gateway ($@)\n") if ($@); if (%PREFIXES) { ((warn "Prefix $sms->{prefix} not supported by $gateway") && return 0) unless (exists $PREFIXES{$sms->{prefix}}); } return _send($sms); } #### #!/usr/bin/perl -w package WWW::SMS::Vizzavi; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(); @EXPORT_OK = qw(%PREFIXES _send MAXLENGTH); %PREFIXES = map {$_, 1} qw(333 335 338 339 340 347 348 349 328 329 380 388 389); $VERSION = '1.00'; sub MAXLENGTH () {140} sub _send { my $self = shift; use HTTP::Request::Common qw(GET POST); use HTTP::Cookies; use LWP::UserAgent; $ua = LWP::UserAgent->new; $ua->agent('Mozilla/5.0'); $ua->cookie_jar(HTTP::Cookies->new( file => "lwpcookies.txt", autosave => 1)); $self->{smstext} = substr($self->{smstext}, 0, MAXLENGTH - 1) if (length($self->{smstext})>MAXLENGTH); $req = POST 'http://sms.vizzavi.it/global.asp', [ 'txtMsg' => $self->{smstext} ,'selPref' => $self->{prefix}, 'TypeOpen' => '1' ,'txtTel' => $self->{telnum} , 'Counter' => '' ]; $req->headers->referer('http://sms.vizzavi.it/freesms_conf.asp'); print "1...\n"; $file = $ua->simple_request($req)->as_string; return 0 unless ($file =~ m'Messaggio\+accodato\+con\+successo's); $ua->cookie_jar->clear(); 1; } 1;