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


Posted in PHP onOctober 24, 2016

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

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

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

解决:

免费发送短信到手机

方案1:使用飞信API

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

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

此处,我使用http://3.ibtf.sinaapp.com/提供的飞信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

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

PHP 相关文章推荐
Cannot modify header information错误解决方法
Oct 08 PHP
一个典型的PHP分页实例代码分享
Jul 28 PHP
解析PHP无限级分类方法及代码
Jun 21 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
Dec 08 PHP
PHP实现网站访问量计数器
Oct 27 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 PHP
php伪静态验证码不显示的解决方案
Sep 26 PHP
浅谈php和js中json的编码和解码
Oct 24 #PHP
php注册和登录界面的实现案例(推荐)
Oct 24 #PHP
php 使用html5实现多文件上传实例
Oct 24 #PHP
php 多文件上传的实现实例
Oct 23 #PHP
php 修改上传文件大小限制实例详解
Oct 23 #PHP
详解php中空字符串和0之间的关系
Oct 23 #PHP
PHP判断表达式中括号是否匹配的简单实例
Oct 22 #PHP
You might like
十天学会php(2)
2006/10/09 PHP
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
javascript中的startWith和endWith的几种实现方法
2013/05/07 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
React组件的三种写法总结
2017/01/12 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
python3中property使用方法详解
2019/04/23 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
国家励志奖学金获奖感言
2014/01/09 职场文书
公司年会主持词
2014/03/22 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
党员带头倡议书
2015/04/29 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
正规欠条模板
2015/07/03 职场文书