使用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调用数据库的存贮过程
Oct 09 PHP
PHP程序员编程注意事项
Apr 10 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
PHP5.3以上版本安装ZendOptimizer扩展
Mar 27 PHP
php判断表是否存在的方法
Jun 18 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
PHP实现生成唯一会员卡号
Aug 24 PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
YII2 全局异常处理深入讲解
Mar 24 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使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
js密码强度校验
2015/11/10 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
Python 常用string函数详解
2016/05/30 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
pandas计数 value_counts()的使用
2019/06/24 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
基于python使用tibco ems代码实例
2019/12/20 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
python包的导入方式总结
2021/03/02 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
办护照工作证明范本
2014/01/14 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
2015年计生工作总结范文
2015/04/24 职场文书