当前位置:首页 > PHP教程 > php应用 > 列表

PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-15 22:02:29 浏览: 评论:0 

这篇文章主要介绍了PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法,实例分析了php实用curl模拟登陆163邮箱的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

本文实例讲述了PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法,分享给大家供大家参考,具体实现方法如下:

  1. <?php 
  2.     header("Content-Type: text/html; charset=UTF-8"); 
  3.     error_reporting(0); 
  4.     /** 
  5.      * 登陆 
  6.      * $user 163用户名 
  7.      * $pass 密码 
  8.     **/ 
  9.     function login($user,$pass){ 
  10.         //登陆 
  11.         $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';      
  12.         $cookie = tempnam('./cache/','~');//创建一个用于存放cookie信息的临时文件  
  13.         $fields_post = array
  14.             'username'      => $user
  15.             'password'      => $pass
  16.             'verifycookie'  => 1, 
  17.             'style'         => -1, 
  18.             'product'       => 'mail163'
  19.             'selType'       => -1, 
  20.             'secure'        => 'on' 
  21.         ); 
  22.         $fields_string = '';    
  23.         foreach($fields_post as $key => $value){ 
  24.             $fields_string .= $key . '=' . $value . '&'
  25.         }    
  26.         $fields_string = rtrim($fields_string , '&'); 
  27.         $headers = array
  28.             'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0'
  29.             'Referer'    => 'http://www.163.com' 
  30.         ); 
  31.         $ch = curl_init($url);  
  32.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//返回结果存放在变量中,而不是默认的直接输出 
  33.         curl_setopt($ch, CURLOPT_HEADER, true); 
  34.         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); 
  35.         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
  36.         curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);//关闭连接时,将服务器端返回的cookie保存在以下文件中 
  37.         curl_setopt($ch, CURLOPT_POST, true); 
  38.         curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);       
  39.         $result= curl_exec($ch); 
  40.         curl_close($ch); 
  41.         preg_match_all('/<div class="info" id="eHint">(.*?)&nbsp;<\/div>/i'$result,$infos,PREG_SET_ORDER); 
  42.         if(!emptyempty($infos['0']['1'])){ 
  43.             unlink($cookie); 
  44.             exit('<script type="text/javascript">alert("'.$infos['0']['1'].'");history.go(-1);</script>'); 
  45.         }else{      
  46.             $G_ROOT = dirname(__FILE__); 
  47.             file_put_contents($G_ROOT.'/cache/cookie'$cookie); 
  48.             return $cookie
  49.         } 
  50.     } 
  51.     /** 
  52.      * 
  53.      * $data['url'] 请求地址 
  54.      * $data['data_post'] post数据 
  55.      * $data['cookie'] 
  56.      * 
  57.     **/ 
  58.     function curl($data){ 
  59.         $url = $data['url']; 
  60.         $data_post$data['data_post']? $data['data_post']: false; 
  61.         $cookie = $data['cookie'];      
  62.         $headers = array
  63.             'User-Agent'        => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0'
  64.             'Referer'    => 'http://www.163.com' 
  65.         ); 
  66.         $ch = curl_init($url);   
  67.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
  68.         curl_setopt($ch, CURLOPT_HEADER, true); 
  69.         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);      
  70.         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
  71.         curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
  72.         curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);  //cookie文件 登陆之后 
  73.         //POST 提交 
  74.         if($data_post){ 
  75.             curl_setopt($ch, CURLOPT_POST, 1); 
  76.             curl_setopt($ch, CURLOPT_POSTFIELDS, $data_post); 
  77.         } 
  78.         $result = curl_exec($ch); 
  79.         curl_close($ch); 
  80.         return $result
  81.     }

Tags: PHP模拟登陆 PHP获取通讯录列表

分享到: