Anasayfa > Hazır Kodlar > PHP > GMail Adres Defteri
Hazırlanıyor..
Makaleye verilen puanlar

GMail Adres Defteri



 

GMail hesabinizdaki adres defterini alma sinifi

 

<-- GrabGmail.class.php sayfasi kodlari -->
<?php
/**
* Grab Gmail : Gmail Addressbook Grabber Class
*
* @author  :  MA Razzaque Rupom <rupom_315@yahoo.com>, <rupom.bd@gmail.com>
*             Moderator, phpResource (http://groups.yahoo.com/group/phpresource/)
*             URL: http://www.rupom.info  
* @version :  1.0
* @date       06/09/2006
* Purpose  :  Grabbing Your Gmail Addressbook
*/

  class GrabGmail
  {
     //To use it in PHP4, please replace each "private" by "var"
     private $contactListArray = array();
     private $contactListTable;
     private $requireCaBundle = false;
     private $caBundleFile;
     private $cookiePath;
     private $proxyUrl='';
     private $userId     ='';
     private $password   ='';
     private $url        = "https://www.google.com/accounts/ServiceLoginAuth";     
     private $refererUrl = "https://www.google.com/accounts/ServiceLogin?service=mail&passive=true&rm=false&continue=http://mail.google.com/mail/?ui=html&zy=f&ltmpl=yj_blanco&ltmplcache=2&hl=en"; 
     
     /**
     * Sets login information of Gmail account
     * @param user id and password
     * @return none
     */ 
     function setLoginInfo($userId, $password)
     {
     
        $this->userId   = $userId;
        $this->password = $password;     
     
     }//EO Method
     
     /**
     * Sets cookie save path(where cookie will be saved)
     * @param cookie path
     * @return none
     */      
     function setCookiePath($cookiePath)
     {
        $this->cookiePath = $cookiePath;     
     }
     
     /**
     * Sets proxy information if any
     * @param proxy URL
     * @return none
     */ 
     function setProxy($proxyUrl)
     {
        $this->proxyUrl = $proxyUrl;       
     }
     
     /**
     * Sets Certificate Bundle File (this is necessary in accessing Gmail from localhost)
     * @param user id and password
     * @return none
     */ 
     function setCaBundleFile($fileName)
     {
        $this->requireCaBundle = true;
        $this->caBundleFile    = $fileName; //provide absolute path
     }
 
     /**
     * Checks whether proxy info is set
     * @param none
     * @return none
     */     
     function isProxy()
     {
        if($this->proxyUrl == '')
        {
           return false;        
        }
        
        return true;        
     
     }//EO Method
     
     /**
     * Prepares contact list
     * @param none
     * @return none
     */ 
     function prepareContactList()
     {
     
       if($this->userId == "" || $this->password=="")
       {
         die("Set Login Info");         
       }
       else
       {
         $this->postRequestToGmail();         
       }      
     
     }//EO Method
     
     /**
     * Gets contact list in a table
     * @param none
     * @return Contact List Table
     */ 
     function getResultTable()
     {
        if(!empty($this->contactListTable))
        {
           return $this->contactListTable;           
        }
        else
        {
           return "List is Empty. Check your user id and password.";     
        }     
     }//EO Method
          
     /**
     * Gets contact list in an array
     * @param none
     * @return Contact List Array
     */      
     function getResultArray()
     {
        if(strlen($this->contactListTable)>33)
        {
           $strValue = $this->contactListTable;                      
           $this->convertToArray($strValue);           
           
           return $this->contactListArray;
           
        }
        else
        {
           return "List is Empty. Check your user id and password.";     
        }     
     }//EO Method
     
     /**
     * Post request to Gmail, gets and parses contact list from Gmail
     * @param none
     * @return none
     */
     function postRequestToGmail()
     {
        
        $requestString  = "service=mail&Email=".urlencode($this->userId)."&Passwd=".urlencode(str_replace(' ','+',$this->password))."&null=Sign%20in&continue=http%3A%2F%2Fmail.google.com%2Fmail%3F&rm=false&hl=en";
        $user_agent     = $_SERVER['HTTP_USER_AGENT'];  
        $cookie         = 1;        
        $cookieFileName = md5($this->userId);  
        
        //setting cookie file. make sure the file has write permission
        $cookieFileJar  = (isset($this->cookiePath))?($this->cookiePath. "/" . $cookieFileName) : ($_SERVER['DOCUMENT_ROOT'] . "/" . $cookieFileName);                        
        $cookieFile     = $cookieFileJar;
        $refererUrl     = $this->refererUrl;
        
        $c = curl_init();
           curl_setopt($c, CURLOPT_URL, $this->url);
           curl_setopt($c, CURLOPT_HEADER, 1);
           curl_setopt($c, CURLOPT_POST,   1);
           //this referer tells Gmail that request is coming from Gmail
           curl_setopt($c, CURLOPT_REFERER, $this->refererUrl);                              
           curl_setopt($c, CURLOPT_POSTFIELDS, $requestString);                    
           
           curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
           
           //Certificate information
        if($this->requireCaBundle)
        {
          if(isset($this->caBundleFile))
          {             
             curl_setopt($c, CURLOPT_CAINFO, $this->caBundleFile);
          }
          else
          {
             die("Provide CA Bundle File");     
          }        
        }
        
        if($this->isProxy())
        {
           curl_setopt($c, CURLOPT_PROXY, $this->proxyUrl);
           }
           
           curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
           curl_setopt($c, CURLOPT_USERAGENT, $user_agent);          
           
           //writting cookie
           curl_setopt($c, CURLOPT_COOKIEJAR, $cookieFileJar);     
           curl_setopt($c, CURLOPT_COOKIE, $cookie);
           
           $res = curl_exec($c);
           
           curl_close($c);
                                                
        $requestString ='http://mail.google.com/mail/?view=cl&pnl=a&ui=html&zy=f';
        
        //New curl session        
        $ch = curl_init();
                     
           curl_setopt($ch, CURLOPT_URL, $requestString);
           curl_setopt($ch, CURLOPT_HEADER, 0);
        
           curl_setopt($ch, CURLOPT_REFERER, $refererUrl);                              
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           
           //Certificate information                 
        if($this->requireCaBundle)
        {
          if(isset($this->caBundleFile))
          {             
             curl_setopt($ch, CURLOPT_CAINFO, $this->caBundleFile);             
          }
          else
          {
             die("Provide CA Bundle File");     
          }        
        }
        
        if($this->isProxy())
        {              
           curl_setopt($ch, CURLOPT_PROXY, $this->proxyUrl);
           }
           
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
            
            //reading cookie
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);     
            
            curl_setopt($ch, CURLOPT_COOKIE, $cookie);
                        
           $gmailResponse = curl_exec($ch);     
           
           curl_close($ch);     
           
           $parsedResponse  = $this->parseResponse($gmailResponse);
           
           $this->contactListTable = $parsedResponse;
           
     }//EO Method
     
     /**
     * Converts table data to array data
     * @param Table of Contact List
     * @return Contact List Array
     */ 
     function convertToArray($strValue)
     {
        $strVal = str_replace("&nbsp;","",$strValue);
        $output = array();        
        $strVal = nl2br($strVal);
        $strVal = str_replace("<br />",'',$strVal);            
        $matches1 = preg_match_all("/<b>([^<]+)<\/b>/si",$strVal,$output, PREG_PATTERN_ORDER);           
        $offset = array();        
        $matches2 = preg_match_all("/<td[^>]*>([a-zA-Z0-9_\.]+@[a-zA-Z0-9_\.]+)?([^<]*)<\/td>/si",$strVal,$offset, PREG_PATTERN_ORDER);        
        
        //putting values into associative array                
        for($i=0;$i<sizeof($offset[2]); $i++)
        {
              $email = trim($offset[2][$i]);
              $name  = $output[1][$i];              
           $this->contactListArray["'$email'"] =$name;                
        }                       
     
     }//EO Method  
     
     /**
     * Parses Gmail Response String
     * @param Gmail Response
     * @return Parsed Response
     */ 
     function parseResponse($str)
     {
        $str = nl2br($str);
        $str = str_replace("<br />","",$str);
        $str = preg_replace("/<script[^>]*?>.*?<\/script>/si","", $str);
        $off = array();
        $matches = preg_match_all("/<table[^>]*?>.*?<\/table>/si", $str, $off,PREG_PATTERN_ORDER);
        $strVal = $off[0][6];
        
        return $strVal;
             
     }//EO Method
     
     /**
     * Debugs dump/data
     * @param $dump
     * @return none
     */
     function dBug($dump)
     {
     
        echo "<PRE>";
        print_r($dump);
        echo "</PRE>";  
     
     }//EO Method
       
  }//EO Class
 
?>


<!-- Kullanim -->
<?php
/**
* Grab Gmail : Gmail Addressbook Grabber Class
*
* @author  :  MA Razzaque Rupom <rupom_315@yahoo.com>, <rupom.bd@gmail.com>
*             Moderator, phpResource (http://groups.yahoo.com/group/phpresource/)
*             URL: http://www.rupom.info  
* @version :  1.0
* @date       06/09/2006
* Purpose  :  Grabbing Your Gmail Addressbook
*/

  require_once("GrabGmail.class.php");
  
  $login = 'gmail_kullanici_adi';          // @gmail.com yazmayiniz"
  $password = 'gmail_sifreniz';
  
  $obj = new GrabGmail();
  $obj->setLoginInfo($login, $password);
  $obj->setCaBundleFile("D:/Rupom/xampp/htdocs/xampp/Test/ca-bundle.crt");
  $obj->setProxy("proxy.citech.net:8000");
  $obj->prepareContactList();
  $obj->dBug("===== <b>$login@gmail.com</b> Kullanicisina Ait Adres Defteri =====");
  $obj->dBug('---- Contacts in Table ------');
  $resultTable = $obj->getResultTable();
  $obj->dBug($resultTable);
  $obj->dBug('---- Contacts in Array ------');
  $resultArray = $obj->getResultArray();
  $obj->dBug($resultArray);    
?>



Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.

Digg this Post! Add Post to del.icio.us Bookmark Post in Technorati Furl this Post!
Eklenme tarihi: 12-8-2006

Bu Makaleye Verilen Puan:    Makaleye verilen puanlar
Bu Makaleye Puan Ver  

Bölüm Başlık Kullanıcı Yorumları


Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !

Yorum Ekle  

Bölüm Başlık İlgili Dökümanlar

Döküman / Makale - IE icin PHP fonksiyonlarina Adres satirindan erismek IE icin PHP fonksiyonlarina Adres satirindan erismek
.Microsoft'un sitesinden gerekli kucuk programi indiriniz :http://ww...

Animasyon Görüntülü Ders - Adres çubuğunu değiştirin! Adres çubuğunu değiştirin!
Web tarayıcılarının hemen hepsi font büyüklüğünün değiştirilmesine izin verir. Kimi metinleri daha rahat okumak için font boyutunu artırırken kimi de daha küçük puntolarda...

Animasyon Görüntülü Ders - Cebinizdeki not defteri Cebinizdeki not defteri
Hepimizin bilgisayarında bir metin düzenleme programı vardır. Üstelik bunların büyük kısmı son derece gelişmiş özelliklere sahip ve tek tuşla pek çok farklı işlem gerçekleştirmenize o...

Animasyon Görüntülü Ders - Proxy Adres Kullanmak ve Değiştirmek Proxy Adres Kullanmak ve Değiştirmek
1. Linkler bölümünden proxy sitelerine girip çalışan bir proxy bulun.2. ...

Animasyon Görüntülü Ders - Windows Not defteri de neymiş Windows Not defteri de neymiş
Notepad ++ ücretsiz bir metin editörü olarak, Windows'un sunduğu standart metin editörüyle kıyaslanmayacak derecede güçlü bir alternatif.5.7 Sürümü çıkan bu çok kullanışlı uygulama, Türkçe...

Reklam Netinternet
Gizlilik | Copyright © 2006-2009 ™ Tüm hakları saklıdır.
Powered by BilgiPortal v2.2
Frasb Etiler WebTasarım Web Tasarım