分三步走:
第一步,模拟登录界面,向https://reg.163.com/logins.jsp发送请求
注意curl函数一定要设置cookie的目录,以便日后读取.
可以这样设置curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
COOKIEJAR为自己定义的保存COOKIE的常量, 注意这个文件一定要可写
第二步, 获取cookie,向http://fm163.163.com/coremail/fcg/ntesdoor2?verifycookie=1&lightweight=1发送请求
curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
这两块设置很关键
第三步,读取cookie
文件读写,从 COOKIEJAR 中读取.
获取cookieid.
第四步,发送请求http://g1a126.mail.163.com/a/s?sid=".$cookieid."&func=global:sequential
curl_setopt( $ch, CURLOPT_HTTPHEADER, array( "Content-Type: application/xml" ) );
$str = " <?xml version=/"1.0/"?> <object> <array name=/"items/"> <object> <string name=/"func/">pab:searchContacts </string> <object name=/"var/"> <array name=/"order/"> <object> <string name=/"field/">FN </string> <boolean name=/"ignoreCase/">true </boolean> </object> </array> </object> </object> <object> <string name=/"func/">user:getSignatures </string> </object> <object> <string name=/"func/">pab:getAllGroups </string> </object> </array> </object>";
xml为发送请求的串.
最后再正则匹配取出邮件地址就OK
不得不佩服这个高手呀,对这个机制非常熟悉
实现用PHP程序登录163邮箱并取得当前用户的通讯录列表
最新推荐文章于 2024-07-10 21:39:46 发布