這邊提供 PHS (大眾)、emome (中華電信)、HiNet ADSL (中華電信)、PChome (電腦家庭) 所提供的簡訊介面的 Perl code 讓大家用,其中我自己平常有在跑的是 emome 及 PChome 兩個,其他的我就不清楚了…
這是 HiNet ADSL 的 code:
#!/usr/bin/perl use WWW::Mechanize; use strict; &sendsms("HN 號碼", "密碼", "0911341234", "簡訊測試"); sub sendsms { my ($username, $password, $receiver, $msg) = @_; my $number = 0; my $agent = WWW::Mechanize->new(); $agent->get("http://hiair.hinet.net/hweb/hiairpost_new.jsp"); $agent->form("form1"); foreach (split(/[ ,]+/, $receiver)) { $agent->field("tel", $_, ++$number); } $agent->field("add_name", "0"); $agent->field("message", $msg); $agent->submit(); $agent->form("loginform"); $agent->submit(); $agent->form("AuthScreen"); $agent->field("aa-uid", $username); $agent->field("aa-passwd", $password); $agent->submit(); foreach (split(/\r|\n/, $agent->content())) { next unless (/window.location.href='/i); $_ =~ /window.location.href='(.+)'/i; my $newurl = $1; $agent->get($newurl); last; } print($agent->content()); }
這是 PChome 的 code:
#!/usr/bin/perl use HTML::Form; use WWW::Mechanize; use strict; &sendsms('username', 'password', 'confirm code', '0911341234', '測試簡訊'); sub sendsms { my ($username, $password1, $password2, $receiver, $msg) = @_; my $agent = WWW::Mechanize->new(); $agent->agent_alias('Windows IE 6'); $agent->get('http://sms.pchome.com.tw/front_end/sms'); $agent->form_number(1); $agent->field('fuid', $username); $agent->field('pwd', $password1); $agent->submit(); $agent->form_number(2); $agent->field('InputMsg', $msg); my $num = 0; foreach my $phone_number (split(/,+/, $receiver)) { $agent->field(sprintf('mobile%02d', ++$num), $phone_number); } $agent->submit(); $agent->field('auth_code', $password2); $agent->current_form()->action('https://ezpay.pchome.com.tw/auth_form_do'); $agent->submit(); }
再來是 PHS 的 code:
#!/usr/bin/perl use WWW::Mechanize; use strict; &sendsms("0968123123", "A123456789", "0968123123", "PHS SMS test"); sub sendsms { my (%h); my ($username, $password, $receiver, $msg) = @_; my $agent = WWW::Mechanize->new(); $agent->agent_alias('Windows IE 6'); $agent->get('http://www.phs.com.tw/myphs/Login.asp?URL=Send-SMS.asp'); $agent->form('form1'); $agent->field('PhoneNo', $username); $agent->field('PWD', $password); my $con = $agent->submit(); $agent->get('Send-SMS.asp'); $agent->form('frmSS'); $agent->field("txtSMS", $msg); $agent->field("RcvPhoneNo1", $receiver); $agent->field("rdSendTime", "R"); $con = $agent->submit(); }
最後是 emome:
#!/usr/bin/perl use HTML::Form; use WWW::Mechanize; use strict; &sendsms('0911341234', '123456', '0911341234', '我是 dk,來打 settler 或 war3 吧'); sub sendsms { my ($username, $password, $receiver, $msg) = @_; my $agent = WWW::Mechanize->new(); $agent->agent_alias('Windows IE 6'); $agent->get('http://www.emome.net/cgi-bin/MASP/jsp/membersvc/AuthServlet?serviceId=5235'); $agent->form('myform'); $agent->field('MSISDN', $username); $agent->field('PASSWD', $password); $agent->submit(); $agent->form('form1'); $agent->field('phonelist', $receiver); $agent->field('data', $msg); $agent->field('language', 2); # 1 == 中,2 == 英 $agent->current_form()->action('http://websms1.emome.net/sms/sendsms/send.jsp'); $agent->submit(); }