php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录(原创),该如何处理
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>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Sowohl Curl als auch Pythonrequests sind leistungsstarke Tools zum Senden von HTTP-Anfragen. Während Curl ein Befehlszeilentool ist, mit dem Sie Anfragen direkt vom Terminal aus senden können, bietet die Requests-Bibliothek von Python eine eher programmatische Möglichkeit, Anfragen aus Python-Code zu senden. Die grundlegende Syntax zum Konvertieren des Curl-Befehls in den Pythonrequestscurl-Befehl lautet wie folgt: curl[OPTIONS]URL Beim Konvertieren des Curl-Befehls in eine Python-Anfrage müssen wir die Optionen und die URL in Python-Code konvertieren. Hier ist ein Beispiel für einen CurlPOST-Befehl: curl-XPOST https://example.com/api

Um die Curl-Version unter Linux zu aktualisieren, können Sie die folgenden Schritte ausführen: Überprüfen Sie die aktuelle Curl-Version: Zunächst müssen Sie die im aktuellen System installierte Curl-Version ermitteln. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus: curl --version Dieser Befehl zeigt die aktuellen Informationen zur Curl-Version an. Verfügbare Curl-Version bestätigen: Bevor Sie Curl aktualisieren, müssen Sie die neueste verfügbare Version bestätigen. Sie können die offizielle Website von Curl (curl.haxx.se) oder verwandte Softwarequellen besuchen, um die neueste Version von Curl zu finden. Laden Sie den Curl-Quellcode herunter: Laden Sie mit Curl oder einem Browser die Quellcodedatei für die Curl-Version Ihrer Wahl herunter (normalerweise .tar.gz oder .tar.bz2).

PHP8.1 veröffentlicht: Einführung von Curl für die gleichzeitige Verarbeitung mehrerer Anfragen Vor kurzem hat PHP offiziell die neueste Version von PHP8.1 veröffentlicht, die eine wichtige Funktion eingeführt hat: Curl für die gleichzeitige Verarbeitung mehrerer Anfragen. Diese neue Funktion bietet Entwicklern eine effizientere und flexiblere Möglichkeit, mehrere HTTP-Anfragen zu verarbeiten und verbessert so die Leistung und das Benutzererlebnis erheblich. In früheren Versionen erforderte die Bearbeitung mehrerer Anfragen häufig die Erstellung mehrerer Curl-Ressourcen und die Verwendung von Schleifen zum Senden bzw. Empfangen von Daten. Obwohl diese Methode den Zweck erreichen kann

Von Anfang bis Ende: So verwenden Sie die PHP-Erweiterung cURL für HTTP-Anfragen. Einführung: Bei der Webentwicklung ist es häufig erforderlich, mit APIs von Drittanbietern oder anderen Remote-Servern zu kommunizieren. Die Verwendung von cURL zum Senden von HTTP-Anfragen ist eine gängige und leistungsstarke Methode. In diesem Artikel wird erläutert, wie Sie mit PHP cURL erweitern, um HTTP-Anfragen auszuführen, und einige praktische Codebeispiele bereitstellen. 1. Vorbereitung Stellen Sie zunächst sicher, dass PHP die cURL-Erweiterung installiert hat. Zur Überprüfung können Sie php-m|grepcurl in der Befehlszeile ausführen

Wie gehe ich mit der 301-Umleitung von Webseiten in PHPCurl um? Wenn Sie PHPCurl zum Senden von Netzwerkanfragen verwenden, werden Sie häufig auf den von der Webseite zurückgegebenen Statuscode 301 stoßen, der darauf hinweist, dass die Seite dauerhaft umgeleitet wurde. Um diese Situation richtig zu handhaben, müssen wir der Curl-Anfrage einige spezifische Optionen und Verarbeitungslogik hinzufügen. Im Folgenden wird detailliert beschrieben, wie mit der 301-Umleitung von Webseiten in PHPCurl umgegangen wird, und es werden spezifische Codebeispiele bereitgestellt. 301-Redirect-Verarbeitungsprinzip 301-Redirect bedeutet, dass der Server eine 30 zurückgibt

Unter Linux ist Curl ein sehr praktisches Tool zum Übertragen von Daten zum und vom Server. Es verwendet URL-Regeln, um unter der Befehlszeile zu arbeiten, und ist ein umfassendes Übertragungstool. Curl bietet viele sehr nützliche Funktionen, darunter Proxy-Zugriff, Benutzerauthentifizierung, FTP-Upload und -Download, HTTP POST, SSL-Verbindung, Cookie-Unterstützung, Breakpoint-Wiederaufnahme und so weiter.

So setzen Sie Cookies in PHP Curl: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Legen Sie cURL-Übertragungsoptionen über die Funktion „curl_setopt“ fest. 3. Übergeben Sie Cookies in CURL.

PHP ist eine weit verbreitete Open-Source-Skriptsprache, die von vielen Websites verwendet wird. Manchmal kann jedoch das Problem PHPFatalerror:Calltoundefinedfunctioncurl_setopt() auftreten, das dazu führen kann, dass Ihre Website nicht ordnungsgemäß funktioniert. Was genau verursacht dieses Problem? In PHP ist curl_setopt() eine sehr wichtige Funktion, die zum Erweitern der Bibliothek durch Curl verwendet wird
