php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录(原创)
最近一直在忙,赶在这个十一假期结束的时候,发表一下此文,为了是让这些源码开源出来
当然这些方法可能不可取,但大致应该是这种方向了吧,由于目前做的一个UCHOME港台的站点
咱们策划说要改一下好友邀请里面的显示方式,开始我也没有在意,当时就说行!
到了弄这个的时候才发现,UCH里面的这个地方是用漫游型式做的,让人很是无解,啥都改不了!
唉,既然都答应了说可以,现在实际情况不行了,所以觉得不好意思,为了快速解决这问题,在GOOGLE,
百度上搜了个遍,结果又出忽意料,就一个126邮箱的开源例子,其它的都没有,有一牛哥留着QQ说要其它的源码,
可以加QQ买!不对此人评论了!俺花了点时间,整了整,结果就幸运的弄出来了几个,因为时间有限,目前手上的项目一直在弄,所以就没有管其它的,现在给出 GMAIL,HOTMAIL(MSN),YAHOO的邮箱联系人的PHP源代码:
1.GMAIL
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?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>/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); /* 对于返回xml数据时需要此设置 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>"; curl_setopt($ch, CURLOPT_POSTFIELDS, $str); */ 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 /* 对于返回xml数据时的处理 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 '您的邮箱中尚未有联系人'; } */ $contents = substr($contents, strlen('while (true); &&&START&&&'), -strlen('&&&END&&& ')); return $contents; } } $gamil = new GMAIL; $res = $gamil->getAddressList('username@163.com','123456'); echo $res; ?> <script type="text/javascript"> var data = <?php echo $res; ?> alert(data['Body']); //json数据 </script> <div class="clear"> </div></string></string>

curl和Pythonrequests都是发送HTTP请求的强大工具。虽然curl是一种命令行工具,可让您直接从终端发送请求,但Python的请求库提供了一种更具编程性的方式来从Python代码中发送请求。将curl转换为Pythonrequestscurl命令的基本语法如下所示:curl[OPTIONS]URL将curl命令转换为Python请求时,我们需要将选项和URL转换为Python代码。这是一个示例curlPOST命令:curl-XPOSThttps://example.com/api

在Linux下更新curl版本,您可以按照以下步骤进行操作:检查当前curl版本:首先,您需要确定当前系统中安装的curl版本。打开终端,并执行以下命令:curl--version该命令将显示当前curl的版本信息。确认可用的curl版本:在更新curl之前,您需要确定可用的最新版本。您可以访问curl的官方网站(curl.haxx.se)或相关的软件源,查找最新版本的curl。下载curl源代码:使用curl或浏览器,下载您选择的curl版本的源代码文件(通常为.tar.gz或.tar.bz2

PHP8.1发布:引入curl多个请求并发处理近日,PHP官方发布了最新版本的PHP8.1,其中引入了一个重要的特性:curl多个请求并发处理。这个新特性为开发者提供了一个更加高效和灵活的方式来处理多个HTTP请求,极大地提升了性能和用户体验。在以往的版本中,处理多个请求往往需要通过创建多个curl资源,并使用循环来分别发送和接收数据。这种方式虽然能够实现目

从头到尾:如何使用php扩展cURL进行HTTP请求引言:在Web开发中,经常需要与第三方API或其他远程服务器进行通信。而使用cURL进行HTTP请求是一种常见而强大的方式。本文将介绍如何使用php扩展cURL来执行HTTP请求,并提供一些实用的代码示例。一、准备工作首先,确保php已安装cURL扩展。可以在命令行执行php-m|grepcurl查

在linux中,curl是一个非常实用的、用来与服务器之间传输数据的工具,是一个利用URL规则在命令行下工作的文件传输工具;它支持文件的上传和下载,是综合传输工具。curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传等等。

PHPCurl中如何处理网页的301重定向?在使用PHPCurl发送网络请求时,时常会遇到网页返回的301状态码,表示页面被永久重定向。为了正确处理这种情况,我们需要在Curl请求中添加一些特定的选项和处理逻辑。下面将详细介绍在PHPCurl中如何处理网页的301重定向,并提供具体的代码示例。301重定向处理原理301重定向是指服务器返回了一个30

php curl设置cookie的方法:1、创建PHP示例文件;2、通过“curl_setopt”函数设置cURL传输选项;3、在CURL中传递cookie即可。

PHP是一种广泛使用的开源脚本语言,被许多网站所使用。然而,有时候你可能会遇到PHPFatalerror:Calltoundefinedfunctioncurl_setopt()这个问题,这个问题也许会使你的网站无法正常工作。那么这个问题到底是什么原因造成的呢?在PHP中,curl_setopt()是一个非常重要的函数,它用于通过curl扩展库


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1
強大的PHP整合開發環境

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),