ホームページ > バックエンド開発 > PHPチュートリアル > phpでGMAIL、HOTMAIL(MSN)、YAHOO、163、126メールログインをシミュレート(オリジナル)、対処方法

phpでGMAIL、HOTMAIL(MSN)、YAHOO、163、126メールログインをシミュレート(オリジナル)、対処方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 13:49:00
オリジナル
1435 人が閲覧しました

php は、GMAIL、HOTMAIL (MSN)、YAHOO、163、126 の電子メール ログインをシミュレートします (オリジナル)
最近忙しいので、これらのソース コードを公開するために、この記事を国慶節の休暇の終わりに公開します。 source

もちろんこれらの方法は推奨されないかもしれませんが、現在 UCHOME 香港と台湾のサイトを構築中なので、おおよそこの方向になるはずです

表示方法を変更する予定です友達の招待状に、最初は気にしなかったので、「はい!」と言いました。

これを行っているときに、UCH のこの場所がローミング モードを使用して作成されていることがわかりました。これは非常に混乱しており、何も変更できませんでした。

まあ、私は同意して大丈夫と言ったのに、現状ではうまくいかないので、恥ずかしいので、この問題を早く解決するために、GOOGLEで検索してみました、

。 Baidu の結果はまたもや、オープン ソースの例は 126 メールボックスのみで、他にはありません。ある人は QQ を保持しており、他のソース コードが必要だと言いました。

に QQ を追加できます。買ってください!この人にはもうコメント不要です!時間をかけて整理したところ、幸運にもいくつか入手できました。時間は限られているので、他のものは気にしませんでした。GMAIL、HOTMAIL (MSN) を使用しました。 , YAHOOのメール連絡先のPHPソースコード:



1.GMAIL

PHP コード
<!--

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 ); //タイムアウト設定
クラス GMAIL
{

        プライベート関数ログイン($username, $password)
        {
                //ステップ 1: ログイン ページのデータの取得をシミュレートし、Cookie を書き留めます
                $cookies = 配列();
                $matches = 配列();
                //フォームを取得する
                $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);
                カール_クローズ($ch);

                //シミュレーションパラメータ
                $name = array('dsh','timeStmp','secTok');
                foreach($name as $v) {
                     preg_match('/<inputs*type="hidden"s*name="'.$v.'"s*id="'.$v.'"s*value="(.*?)"s* />/i', $contents, $matches);
                    if(!empty($matches)) {
                        $$v = $matches[1];
                        $matches = 配列();
                    }
                }
                $server = 'メール';
                preg_match('/<inputs*type="hidden"s*name="GALX"s*value="(.*?)"s*/>/i', $contents, $matches);
                if(!empty($matches)) {
                    $GALX = $matches[1];
                    $matches = 配列();
                }
                $timeStmp = 時間();
                
                //ステップ 2: ログインを開始する
                $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);
                $filds = "dsh=$dsh&Email=".$username."&Passwd={$password}&GALX=$GALX&timeStmp=$timeStmp&secTok=$secTok&signIn=サインイン&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);
                カール_クローズ($ch);
     
                //ステップ 3: Cookie の確認もガイド ページです
                $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);
                 
                カール_クローズ($ch);
                                                
                if (strpos($contents, "安全な終了") !== false)
                {
                        FALSEを返します。
                }
                TURE を返します。
        }
        
        //メールアドレス帳のアドレスを取得
        パブリック関数 getAddressList($username, $password)
        {
                if (!$this->login($username, $password))
                {
                        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&gt ;<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&gt ;<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);
                カール_クローズ($ch);
                //死ぬ($contents);
                // ページ情報からメールリストを取得 ユーザー名 && メールアドレス
                /* XMLデータを返す際の処理
                preg_match_all("/<strings>(.*)</string>/Umsi",$contents,$mails);
                preg_match_all("/<strings*name="FN">(.*)</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&&& '));
                $content を返します。
        }
}

$gamil = 新しい GMAIL;

$res = $gamil->getAddressList('username@163.com','123456');

$res をエコー;

?>
<スクリプトタイプ="text/javascript">
var data = <?php echo $res ?>

alert(data['Body']); //json データ
</スクリプト>


 <div class="clear"></div></strings>
ログイン後にコピー
関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート