PHP获取163、sina、sohu、yahoo、126、gmail、tom邮箱联系人地址
<script>ec(2);</script>
-
- /**
- * @file class.126http.php
- * 获得126邮箱通讯录列表
- * @author jvones http://www.jvones.com/blog
- * @date 2009-09-26
- **/
-
- class http126
- {
-
- private function login($username, $password)
- {
- //第一步:初步登陆
- $cookies = array();
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
-
- curl_setopt($ch, CURLOPT_URL, "https://reg.163.com/logins.jsp?type=1&product=mail126&url=http://entry.mail.126.com/cgi/ntesdoor?hid%3D10010102%26lightweight%3D1%26verifycookie%3D1%26language%3D0%26style%3D-1");
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, "username=".$username."@126.com&password=".$password);
-
- curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
- curl_setopt($ch,CURLOPT_HEADER,1);
- curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- $str = curl_exec($ch);
- //file_put_contents('./126result.txt', $str);
- curl_close($ch);
-
- //获取redirect_url跳转地址,可以从126result.txt中查看,通过正则在$str返回流中匹配该地址
- preg_match("/replace("(.*?)");/", $str, $mtitle);
- $_url1 = $mtitle[1];
-
- //file_put_contents('./126resulturl.txt', $redirect_url);
- //第二步:再次跳转到到上面$_url1
- $ch = curl_init($_url1);
-
- curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR);
- curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR);
- curl_setopt($ch,CURLOPT_HEADER,1);
- $str2 = curl_exec($ch);
- curl_close($ch);
-
- if (strpos($contents, "安全退出") !== false)
- {
- return 0;
- }
- return 1;
- }
-
- /**
- * 获取邮箱通讯录-地址
- * @param $user
- * @param $password
- * @param $result
- * @return array
- */
- public function getAddressList($username, $password)
- {
- if (!$this->login($username, $password))
- {
- return 0;
- }
-
- $header = $this->_getheader($username);
- if (!$header['sid'])
- {
- return 0;
- }
-
- //测试找出sid(很重要)和host
- //file_put_contents('./host.txt', $header['host']);
- //file_put_contents('./sid.txt', $header['sid']);
-
- //开始进入模拟抓取
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, "http://".$header['host']."/a/s?sid=".$header['sid']."&func=global:sequential");
- curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/xml"));
- $str = "";
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $str);
- curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
- ob_start();
- curl_exec($ch);
- $contents = ob_get_contents();
-
- ob_end_clean();
- curl_close($ch);
-
- //get mail list from the page information username && emailaddress
- preg_match_all("/(.*)/Umsi",$contents,$mails);
- preg_match_all("/(.*)/Umsi",$contents,$names);
- $users = array();
- foreach($names[1] as $k=>$user)
- {
- //$user = iconv($user,'utf-8','gb2312');
- $users[$mails[1][$k]] = $user;
- }
- if (!$users)
- {
- return '您的邮箱中尚未有联系人';
- }
-
- return $users;
- }
-
- /**
- * Get Header info
- */
- private function _getheader($username)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, "http://entry.mail.126.com/cgi/ntesdoor?hid=10010102&lightweight=1&verifycookie=1&language=0&style=-1&username=".$username."@126.com");
- curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR); //当前使用的cookie
- curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR); //服务器返回的新cookie
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HEADER, true);
- curl_setopt($ch, CURLOPT_NOBODY, true);
- $content=curl_exec($ch);
-
- preg_match_all('/Location:s*(.*?)rn/i',$content,$regs);
- $refer = $regs[1][0];
- preg_match_all('/http://(.*?)//i',$refer,$regs);
- $host = $regs[1][0];
- preg_match_all("/sid=(.*)/i",$refer,$regs);
- $sid = $regs[1][0];
-
- curl_close($ch);
- return array('sid'=>$sid,'refer'=>$refer,'host'=>$host);
- }
- }
-
- ?>
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31