PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-15 22:02:29 浏览: 评论:0
这篇文章主要介绍了PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法,实例分析了php实用curl模拟登陆163邮箱的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下。
本文实例讲述了PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法,分享给大家供大家参考,具体实现方法如下:
- <?php
- header("Content-Type: text/html; charset=UTF-8");
- error_reporting(0);
- /**
- * 登陆
- * $user 163用户名
- * $pass 密码
- **/
- function login($user,$pass){
- //登陆
- $url = 'http://reg.163.com/logins.jsp?type=1&url=http://entry.mail.163.com/coremail/fcg/ntesdoor2?lightweight%3D1%26verifycookie%3D1%26language%3D-1%26style%3D-1';
- $cookie = tempnam('./cache/','~');//创建一个用于存放cookie信息的临时文件
- $fields_post = array(
- 'username' => $user,
- 'password' => $pass,
- 'verifycookie' => 1,
- 'style' => -1,
- 'product' => 'mail163',
- 'selType' => -1,
- 'secure' => 'on'
- );
- $fields_string = '';
- foreach($fields_post as $key => $value){
- $fields_string .= $key . '=' . $value . '&';
- }
- $fields_string = rtrim($fields_string , '&');
- $headers = array(
- 'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0',
- 'Referer' => 'http://www.163.com'
- );
- $ch = curl_init($url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//返回结果存放在变量中,而不是默认的直接输出
- curl_setopt($ch, CURLOPT_HEADER, true);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);//关闭连接时,将服务器端返回的cookie保存在以下文件中
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
- $result= curl_exec($ch);
- curl_close($ch);
- preg_match_all('/<div class="info" id="eHint">(.*?) <\/div>/i', $result,$infos,PREG_SET_ORDER);
- if(!emptyempty($infos['0']['1'])){
- unlink($cookie);
- exit('<script type="text/javascript">alert("'.$infos['0']['1'].'");history.go(-1);</script>');
- }else{
- $G_ROOT = dirname(__FILE__);
- file_put_contents($G_ROOT.'/cache/cookie', $cookie);
- return $cookie;
- }
- }
- /**
- *
- * $data['url'] 请求地址
- * $data['data_post'] post数据
- * $data['cookie']
- *
- **/
- function curl($data){
- $url = $data['url'];
- $data_post= $data['data_post']? $data['data_post']: false;
- $cookie = $data['cookie'];
- $headers = array(
- 'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0',
- 'Referer' => 'http://www.163.com'
- );
- $ch = curl_init($url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HEADER, true);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
- curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //cookie文件 登陆之后
- //POST 提交
- if($data_post){
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data_post);
- }
- $result = curl_exec($ch);
- curl_close($ch);
- return $result;
- }
Tags: PHP模拟登陆 PHP获取通讯录列表
- 上一篇:PHP判断浏览器、判断语言代码分享
- 下一篇:php实现发送微信模板消息的方法
相关文章
- ·php实现模拟登陆方正教务系统抓取课表(2021-05-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)