PHP获取163、sina、sohu、yahoo、126、gmail、tom邮箱联系人1

网友投稿 421 2022-09-02

PHP获取163、sina、sohu、yahoo、126、gmail、tom邮箱联系人1

1) 安装    修改php.ini文件,找到;extension= php_curl.dll行,去掉前面的;号,保存,重启服务器。

2、Linux下的PHP 开启curl 库支持:编译PHP 时在./configure后加上 –with-curl

在站点目录下建立一个PHP文件,内容如下

预览如果能打开= array( 'email' => 'XXX@gmail.com', 'password' => 'XXXX',);$ch = curl_init();curl_setopt($ch,CURLOPT_URL,'CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,urldecode(= curl_exec($ch);curl_close($ch);if($res) { print_r(json_decode($res));}

@date 2009-09-26**/class private function login($username, $password) { //第一步:初步登陆 $cookies = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, " 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, " curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/xml")); $str = "pab:searchContactsFNtrueuser:getSignaturespab:getAllGroups"; 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("/(.*)<\/string>/Umsi",$contents,$mails); preg_match_all("/(.*)<\/string>/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, " 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*(.*?)\r\n/i',$content,$regs); $refer = $regs[1][0]; preg_match_all('/ $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); }}?>

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:营销有用吗?(速卖通联盟营销有用吗)
下一篇:程序员修炼之道-DRY与巧合编程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~