使用php sendmail插件定时发送天气预报提醒
闲来没事,就写了一个定时发送天气预报提醒到自己qq邮箱的功能。
大概逻辑:通过天气接口(免费天气接口)获取今日天气,处理好数据,最后通过mail()函数发送到邮箱(具体接口使用,自己看api文档)
2、下载完成,进行解压。(我是解压到D:\sendmail,最好是短路径,长路径可能会出现问题)
3、配置php.ini
4、配置sendmail.ini
qq邮箱授权码如何获取?
登录qq邮箱,进入账号,往下滑,就会看到
就获取到qq邮箱授权码了!
5、重启apache
贴上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php //获取天气预报 $weather = file_get_contents("https://www.tianqiapi.com/api/?appid=33116163&appsecret=s71cXjcw&version=v1"); $data = json_decode($weather,true); //发送的邮箱 $to = '1830442332@qq.com'; //邮件的标题 $subject = '天气预报提醒'; //邮件内容 $message = $data['city']."天气:\r\n"."天气情况:".$data['data'][0]['wea']."\r\n"."今日温度:".$data['data'][0]['tem2']."\r\n"."当前温度:".$data['data'][0]['tem2']."~".$data['data'][0]['tem1']."\r\n"."穿衣指数:".$data['data'][0]['index'][3]['desc']."\r\n"; $headers = 'From: lisuibi@foxmail.com' . "\r\n" . 'Reply-To: lisuibi@foxmail.com' . "\r\n"; $status = mail($to, $subject, $message, $headers); if($status){ echo '发送邮件成功,时间为'.date('Y-m-d H:i:s'); }else{ echo '发送失败'; }
|
效果:
以上,就完成了sendmail插件发送天气预报。但是还有一个问题就是定时发送?
我们使用win10的定时任务去完成!
首先,新建一个bat文件。
内容为:
php为你配置的php环境变量(如果没配置就使用你php环境的绝对路径)
我的配置如下(具体看你实际路径):
bat文件创建成功!
打开win10任务计划程序
大功告成!!!