尝试了以下简单的
使用 Net::SMS::WAY2SMS
的代码 1
use strict;
use warnings;
use Net::SMS::WAY2SMS;
my $sms = Net::SMS::WAY2SMS->new(
'user' => 'user_name' ,
'password' => 'secret_password',
'mob' => ['1234567890', '0987654321']
);
# multi line sms
$sms->send(q[testing
sending
sms]);
#end1
没有显示错误且无法工作
使用 Net::SMS::160By2
的代码 2
#!C:/strawberry/perl/bin/perl.exe
use strict;
use warnings;
use Net::SMS::160By2;
my $username = "9823763544";
my $password = "sssssss";
my $msg = "Hi";
my $to = "9922334455";
my $obj = Net::SMS::160By2->new($username, $password);
$obj->send_sms($msg, $to);
#end2
错误:无法对 C:/strawberry/perl/site/lib/net/SMS/160By2.pm 第 196 行的未定义值调用方法“action”。
我还尝试了其他几个脚本,但没有一个起作用
最佳答案
Net::SMS::WAY2SMS
无法工作的原因是模块的问题。 Way2SMS 团队没有提供标准 API,并且他们不断更改其接口(interface)。这就是为什么所有与 Way2SMS 相关的 Android 应用程序也会在一两个月后停止工作(一旦 Way2SMS 团队更改界面)。只要 Way2SMS 不提供 API,您就无法获得稳定的解决方案。
160By2 存在同样的问题。
160By2.pm 的第 196 行是 $form->action($sendsms_submit_uri);
并且您得到的错误是 can't call method "action"on undefined value
。这意味着 $form
未定义。
在模块中,作者使用了我们的 $SENDSMS_URL = 'http://160by2.com/FebSendSMS';
$mech
这里试图获取上面的 URL。
my $sendsms_uri = URI->new($SENDSMS_URL);
$mech->get($sendsms_uri->as_string);`
最后它确实如此
my $form = $mech->form_name('frm_sendsms');
和
$form->action($sendsms_submit_uri);
但是,如果您发现 $SENDSMS_URL
出现 404
错误(此 URL 甚至不存在)。因此它给出了错误。
关于perl - 如何使用perl发送短信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23606625/