PHP ile Gmail RSS Servisinden Okunmamış Postaları Çekmek

Gmail hesabınızda oluşturduğunuz label’lara ait ya da gelen, spam gibi kısımlara ait okunmamış mesajlarınızı kendi siteniz üzerinden görmek isterseniz gmail’in rss servisini kullanabilirsiniz.

Örneğin okunmamış mesajlar için;
https://mail.google.com/mail/feed/atom/

ya da spam mesajlar için;
https://mail.google.com/mail/feed/atom/spam

ya da kendi oluşturduğunuz “işler” adında bir labeliniz için;
https://mail.google.com/mail/feed/atom/işler

Bu adreslere girdiğinizde eğer şuan bir gmail hesabınızda oturum açtıysanız onunla ilgili detayları göreceksiniz. Ancak PHP‘de cURL kullanarak herhangi bir başka hesapta anlık oturum açıp postalarımızı görebiliriz. Bunun için öncelikle bize bir cURL fonksiyonu gerekecek. Daha önce cURL hakkında bilgisi olmayanlar şuradan curl derslerime bir gözatabilir.

Şimdi gelelim bize lazım olan cURL fonksiyonuna. Ben sizler için bir tane hazırladım ve 3 parametre alıyor. Bunlar gmail kullanıcı adı, şifresi ve varsa label adı.

function gmailFeed($username, $password, $label = ''){
    $url = "https://mail.google.com/mail/feed/atom/" . $label; 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_ENCODING, "");
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

Kullanımına gelecek olursak;

<?php

require 'gmail.function.php'; // fonksiyon dosyamız

// kullanıcı adı ve şifre tanımı
$gmail_username = '[email protected]';
$gmail_password = 'xxxx';

// gelen kutusu okunmamış postaları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password);
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

// spam kutusu okunmamış postaları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password, 'spam');
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

// örnek olarak oluşturduğumuz bir x labeline ait okunmamış mesajları çekelim
$feeds = gmailFeed($gmail_username, $gmail_password, 'x');
$feeds = new SimpleXMLElement($feeds);
print_r($feeds);

?>

Örnek yazdırma işlemi;

<ul>
   <?php foreach ( $feeds->entry as $feed ): ?>
      <li>
         <strong>title; ?></strong><br />
         <?php echo $feed->author->name; ?> (<?php echo $feed->author->email;?>)<br />
         <span style="color: #777">
            <?php echo $feed->summary; ?>..
         </span>
      </li>
   <?php endforeach; ?>
</ul>

İşte hepsi bu kadar ????

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir