php 模拟GMAIL邮箱登录
<?php define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) ); //定义COOKIES存放的路径,要有操作的权限 define( "TIMEOUT", 1000 ); //超时设定 class GMAIL { private function login($username, $password) { //第一步:模拟抓取登录页面的数据,并记下cookies $cookies = array(); $matches = array(); //获取表单 $login_url = "https://www.google.com/accounts/ServiceLoginAuth"; $ch = curl_init($login_url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $contents = curl_exec($ch); curl_close($ch); //模拟参数 $name = array('dsh','timeStmp','secTok'); foreach($name as $v) { preg_match('/<input/s*type="hidden"/s*name="'.$v.'"/s*id="'.$v.'"/s*value="(.*?)"/s*//>/i', $contents, $matches); if(!empty($matches)) { $$v = $matches[1]; $matches = array(); } } $server = 'mail'; preg_match('/<input/s*type="hidden"/s*name="GALX"/s*value="(.*?)"/s*//>/i', $contents, $matches); if(!empty($matches)) { $GALX = $matches[1]; $matches = array(); } $timeStmp = time(); //第二步: 开始登录 $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ServiceLoginAuth"); curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR); curl_setopt($ch, CURLOPT_POST, 1); $fileds = "dsh=$dsh&Email=".$username."&Passwd={$password}&GALX=$GALX&timeStmp=$timeStmp&secTok=$secTok&signIn=Sign in&rmShown=1&asts=&PersistentCookie=yes"; curl_setopt($ch, CURLOPT_POSTFIELDS, $fileds); curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR); curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $str = curl_exec($ch); curl_close($ch); //第三步:check Cookies即也算是个引导页面 $ch = curl_init("https://www.google.com/accounts/CheckCookie?chtml=LoginDoneHtml"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch,CURLOPT_COOKIEFILE,COOKIEJAR); curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR); curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT); $str2 = curl_exec($ch); curl_close($ch); if (strpos($contents, "安全退出") !== false) { return FALSE; } return TURE; } //获取邮箱通讯录-地址 public function getAddressList($username, $password) { if (!$this->login($username, $password)) { return FALSE; } //开始进入模拟抓取 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://mail.google.com/mail/contacts/data/contacts?thumb=true&groups=true&show=ALL&enums=true&psort=Name&max=300&out=js&rf=&jsx=true"); //out=js返回json数据,不设置返回为xml数据 curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT); $contents = curl_exec($ch); curl_close($ch); //die($contents); //get mail list from the page information username && emailaddress $contents = substr($contents, strlen('while (true); &&&START&&&'), -strlen('&&&END&&& ')); return $contents; } } $gamil = new GMAIL; $res = $gamil->getAddressList('username@163.com','123456'); echo $res; ?> <mce:script type="text/javascript"><!-- var data = <?php echo $res; ?> alert(data['Body']); //json数据 // --></mce:script>
php 模拟GMAIL邮箱登录相关推荐
- HTML+CSS 模拟QQ邮箱登录界面
模拟QQ邮箱登录界面 index.html <!DOCTYPE html> <html lang="en"> <head><meta ch ...
- Python+Selenium模拟126邮箱登录
通过自学学习写一个简单的自动化测试模拟126邮箱登录.我知道实际的项目不可能这么简单,努力学习 ,争取下次写一个复杂的项目. 重要的事情说三遍:加油!加油!加油!/微笑 import time fro ...
- java模拟网易邮箱登录_求赐教:网易邮箱Web端模拟登录看信的加密参数_ntes_nnid、_ntes_nuid...
网易邮箱的模拟登录和收信都非常简单,在阅读邮件的时候需要两个参数:_ntes_nnid 和 _ntes_nuid _ntes_nnid=21533f97b25070a31c249f59513ad20c ...
- java模拟网易邮箱登录_java+selenium 实现网易邮箱登录功能
今天学习selenium ,折腾了一整天,写个笔记记录一下今天的错误. 我用的是java+webdriver,在eclipse中运行,今天的学习是进行网易邮箱的登录功能.一开始代码运行一直报找不到元素 ...
- python+selenium模拟163邮箱登录
在模拟的时候我们会遇到,找不到输入邮箱和密码,原因是因为用户名和邮箱都在iframe里,需要切换到这个iframe:但是这个iframe id="x-URS-iframe156xxxxxx& ...
- Python selenium模拟QQ邮箱登录
from selenium import webdriver import timebrowser = webdriver.Chrome() browser.get('https://mail.qq. ...
- java模拟网易邮箱登录_java实现163邮箱发送邮件到qq邮箱成功案例
下载和上传附件.发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现在终于成功以163邮箱发送邮件到qq邮箱,以下是相 ...
- 模拟163邮箱登录钓鱼PHP源码,分享一个curl模拟网易163邮箱登录实例
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) ...
- java模拟网易邮箱登录_使用服务端和客户端两种方法 模拟网易邮箱实现全选,全不选的功能...
服务端和客户端的差别是 服务端在每次全选或全不选是都要刷新界面 而客户端不会 服务端: 前台 DataKeyNames="id" DataSourceID="SqlDat ...
最新文章
- HANA 数据库备份hang住的解决办法
- k8s的imagePullSecrets如何生成及使用
- android:ellipsize实现跑马灯效果总结
- 从指定URL中提取文件名
- python好玩的代码_一行 Python 能实现什么丧心病狂的功能?
- PC_excel完毕一列英文小写变大写
- python大神的成长之路_Python大神成长之路: 第三次学习记录 集合 函数 装饰 re...
- java lang runtimeexception什么意思_Java基础之异常
- Android开发笔记(一百四十四)高仿支付宝的头部伸缩动画
- python xml转excel_一个python 脚本将XML文件转换到excel
- 『开源项目』基于STM32的智能垃圾桶之语音播报
- 关键字Wait Until Keyword Succeeds
- 如何解除电子书DRM限制
- Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇)
- 谷歌文件系统论文中文版
- 群晖中安装Firefly记账软件,使用安卓客户端登录
- 认清影响因子引发的是是非非,善待逆境中顽强崛起的国产期刊
- itoa()和atoi()函数详解
- IE显示对象不支持此属性或方法 的解决方法
- 如何提高学生习作水平
热门文章
- SDOI2017 Round1
- Docker 解决Operation not permitted问题
- 第三方物流学习(三)
- python opencv图像对比度_Python OpenCV cv2使图像亮度和对比度提高100%的简单方法
- Linux下QOS---理论篇
- PyTorch学习笔记(一)
- python:isdigit()、isalpha()、isalnum() 三个函数的区别和注意点
- CSS(层叠样式表)
- 2023世界大学工程和技术学科排行榜,国内大学排名如何?
- Thymeleaf - 使用方法及国际化(超详细)