使用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 相关文章推荐
PHP中的函数嵌套层数限制分析
Jun 13 PHP
php中inlcude()性能对比详解
Sep 16 PHP
php自动获取关键字的方法
Jan 06 PHP
PHP二维数组排序简单实现方法
Feb 14 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
Sep 23 PHP
php 函数使用可变数量的参数方法
May 02 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 PHP
laravel 自定义常量的两种方案
Oct 14 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
PHP autoload使用方法及步骤详解
Sep 05 PHP
PHP高并发和大流量解决方案整理
Mar 09 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会员权限控制实现原理分析
2011/05/29 PHP
PHP可变函数的使用详解
2013/06/14 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
微信小程序实现签到弹窗动画
2020/09/21 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
在Django的View中使用asyncio的方法
2019/07/12 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
linux下进程间通信的方式
2013/01/23 面试题
小学教育毕业生自荐信
2013/11/18 职场文书
报到证丢失证明
2014/01/11 职场文书
学校元旦晚会方案
2014/02/19 职场文书
建设投标担保书
2014/05/13 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
暖春观后感
2015/06/08 职场文书
辩论会主持词
2015/07/03 职场文书