perl - 如何使用perl发送短信?

标签 perl perl-module

尝试了以下简单的

使用 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/

相关文章:

bash - 如何检查 Perl 的可用性、它的版本和所需模块的存在?

perl - 导出的 perl 模块子例程不可用

perl - 如何在不使用 Perl 中的 $b(比较)$a 的情况下对一个键进行升序排序,另一个键进行降序排序?

Perl:我如何写入 bin 以外的目录?

perl - 存储时间序列数据,无需数据库

linux - 如果文件不存在,如何创建它的完整路径?

java - 尝试通过 Inline::Java 模块将 Java 内联到 Perl

linux - 我的 perl 脚本如何使用 UDev 而不是 HAL 对任意设备使用react?

perl - 为什么在生成守护进程时会剥离 utf8 IO 层?

perl - 命令行perl脚本中的进度条