实现用PHP程序登录163邮箱并取得当前用户的通讯录列表

分三步走:
第一步,模拟登录界面,向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

不得不佩服这个高手呀,对这个机制非常熟悉

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值