使用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 相关文章推荐
用Zend Encode编写开发PHP程序
Feb 21 PHP
php session和cookie使用说明
Apr 07 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
php设计模式 Prototype (原型模式)代码
Jun 26 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
自定义php类(查找/修改)xml文档
Mar 26 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
PHP利用二叉堆实现TopK-算法的方法详解
Apr 24 PHP
php中字符串和整数比较的操作方法
Jun 06 PHP
php文件上传原理与实现方法详解
Dec 20 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中的foreach函数
2013/08/31 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
python中cPickle类使用方法详解
2018/08/27 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
光荣入党自我鉴定
2014/01/22 职场文书
英语自我评价范文
2014/01/24 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
指导教师评语
2014/04/26 职场文书
护士辞职信怎么写
2015/02/27 职场文书
远程教育学习心得体会
2016/01/23 职场文书
python编程实现清理微信重复缓存文件
2021/11/01 Python
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL