脚本实现别人免费给自己发短信

最近在做一个网站在线监控的东西,里面有一步是一旦发现网站不在线就立即给手机发短信。这个功能显然可以用收费短信实现,但我更希望能得到一个免费的短信接口。稍微想了一下,我能想到的免费给自己发短信的方式有两种,第一个是飞信,第二个是139邮箱。至于飞信,由于API接口我实在是编不出来,于是果断转向了139邮箱。它是中国移动提供给手机用户的邮箱产品,往这个邮箱里发邮件时,手机会自动收到提示。这样,我们就可以实现外部应用或其他人免费给自己发短信。基于这一点,我编写了下面的简单脚本,我是在Sina App Engine上做的这个脚本,放在其他机器上只需要简单改动即可。

 


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
<?php

$sendto='13800000000@139.com';              //这里改成你的139邮箱对应的手机号
$subj=$_REQUEST['s'];
if ($subj==null ) {
    die('调用错误!正确的调用格式:
    http://xxxxxx.sinaapp.com/sendsms.php?s=今天天气这么好,我们该去干吗呢?');
}

$con="Sent From sendsms.";

$mail=new Saemail();
$options=array(
    from => 'send@smtpserver.com',              //你的任意一个邮箱用户名
    to => $sendto,
    smtp_host => 'smtp.smtpserver.com',                 //用户名对应的SMTP服务器地址
    smtp_port => 25,
    smtp_username => 'send@smtpserver.com',                 //刚才的那个邮箱用户名
    smtp_password => 'password',                       //邮箱用户名对应的密码
    subject => $subj,
    content => $con,
);
$mail->setOpt($options);
$ret=$mail->send();
if ($ret === false)
    var_dump($mail->errno(), $mail->errmsg());
else
    die('发送成功!');
?>

保存提交后,访问

1
http://xxxxxx.sinaapp.com/sendsms.php?s=XXXX

就可以将XXXX发送到你的手机上了。当然,前提是你开通了中国移动的139免费邮箱。另外,你或许还需要在邮箱里将短信接收时间改为0点至24点。

这个东西有什么用呢?首先,就是别人可以免费给你发短信。第二个,就是自己的应用可以调用这个借口,实现给自己发免费提醒短信,比如可以用来监控你的VPS是否在线这类的功能。

实际使用的时候可以再编入一个参数token=,防止不认识的人给你发送垃圾短信,这样的话只需要在php脚本的第二行加入两行判定就可以了:

1
2
$token=$_REQUEST("token");
if ("$token"!="qwer1234") die("Wrong Token!");

原创文章,转载请注明来源:香菇肥牛的博客http://qing.su

1 thought on “脚本实现别人免费给自己发短信”

Leave a Comment