欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用PHP免费发送定时短信的实例

程序员文章站 2024-04-02 11:27:10
由于飞信目前没有开发平台,现有api都是第三方开发,貌似是通过破解wap飞信或者3g飞信,模拟浏览器的行为来发短信。另外google code上有开源的php飞信发送类ph...

由于飞信目前没有开发平台,现有api都是第三方开发,貌似是通过破解wap飞信或者3g飞信,模拟浏览器的行为来发短信。另外google code上有开源的php飞信发送类php-fetion。这些飞信接口方便了定时短信的开发。

背景:老妈年纪大了,文化程度不高,但是需要每天了解天气信息才能下地工作,也就无法通过网络获取天气,只能通过电视。于是寻思着自己抓取网络上的天气信息,通过手机短信发送给老妈。

问题:自己不可能每天定时给老妈发送天气短信,现有的天气预报订阅短信又是要钱的。

解决:

免费发送短信到手机

方案1:使用飞信api

由于飞信目前没有开发平台,现有api都是第三方开发,貌似是通过破解wap飞信或者3g飞信,模拟浏览器的行为来发短信。另外google code上有开源的php飞信发送类php-fetion()。这些飞信接口方便了定时短信的开发。

唯一的缺点就是第三方的api不稳定,也有飞信账号泄露的风险。

此处,我使用提供的飞信api进行短信发送。

该api只需提供发送者手机号,密码,接受者手机号,消息内容作为url参数即可。唯一需要注意的是中文的乱码问题(使用gbk而不是utf-8编码,直接输入中文乱码,输入中文的gbk编码手机接收正常),可以使用iconv函数或者加上参数”&u=1”解决。

方案2:使用139邮箱的短信提醒功能

139邮箱也是中国移动的一项业务,提供了邮件短信提醒的功能。只要在邮箱里面设置邮件到达通知就ok了,除了彩信,其他的长短信,普通短信,免提短信都是免费的。注意,时间久了,发件箱和收件箱都要清除一下,以免占用过多空间而影响正常使用。

另外,只需要编写一个简单的邮件发送的php脚本。而新浪sae也提供了此mail服务。使用mail服务里的函数,可以快速发送邮件,代码如下:

<?php 
$mail = new saemail(); 
$ret = $mail->quicksend(  
'收件人@139.com' ,  
'这是主题' , 
'这是正文' , 
'这是发件人邮箱' ,  
'这是发件人密码' , 
'这是smtp服务host' ,  
[这是smpt服务端口] );  
//发送失败时输出错误码和错误信息 
if ($ret === false) 
var_dump($mail->errno(),$mail->errmsg()); 
?> 

效果如下:使用PHP免费发送定时短信的实例

使用PHP免费发送定时短信的实例

短信成功发送后,就需要定时了。还好新浪sae提供了cron服务。cron服务是sae为开发者提供的分布式定时服务,用来定时触发开发者的特定动作,满足比如定时计算排行榜等需求。cron的设置是通过app的config.yaml来实现的,只要用户在app目录下的config.yaml里按照我们的提供的语法格式进行配置,部署后就能生效。

增加cron

编辑saetest/1/config.yaml,增加cron段,config.yaml示例如下: 

name: saetest 
version: 1 
cron: 
- description: cron test 
url: mycron/test.php 
schedule: $2 day of october 19:00 
timezone: beijing 
- description: another cron test 
url: mycron/another_test.php 
schedule: every 10 mins 
timezone: beijing

上面的示例描述了两个定时任务:每年10月2日19点执行mycron/test.php;每隔10分钟执行mycron/another_test.php

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。