2010-11-14 87 views
2

我在做一個涉及處理我的Gmail歷史數據的項目。如何檢索和處理Gmail數據

具體而言,我想生成一個多頁面樣式的PDF,其中包含100個人左右的自定義頁面 - 顯示的數據包括過去一年中發送的電子郵件數量,收到的電子郵件數量在過去的一年中,電子郵件的平均字長,電子郵件中最常用的術語,發送或接收的最舊電子郵件的日期,甚至每個電子郵件的平均驚歎號或咒語的數量等。

我看到this question,它有一個有用的鏈接IMAP functions in the PHP manual,但有人可以幫助我瞭解這樣的項目的架構和難度是什麼?

我預想:

  1. 寫一個PHP腳本在我的Gmail數據運行一些IMAP功能,並將其寫入到MySQL數據庫。
  2. 寫另一個腳本在數據庫上運行MySQL查詢的循環,並打印到成果的基礎上

回答

2

首先,你需要PHP的IMAP庫中的PDF。 然後,就用這個簡單的一步一步的教程:

$email = "[email protected]";//or [email protected]_domain_hosted 
$password = "ini password anda"; 

$imap_host = "{imap.gmail.com:993/imap/ssl}"; 

$imap_folder = "INBOX"; //it's what is called label in Gmail 

$mailbox = imap_open($imap_host . $imap_folder,$email,$password) or die('Failed to open connection with Gmail: ' . imap_last_error()); 

有了上面的代碼,你已經創建的連接到Gmail。現在
,如果你要搜索特定的消息,使用此:

$emails = imap_search($mailbox, 'ALL'); 

閱讀RFC 1176進行更詳細的選項。搜索字符串「tag SEARCH search_criteria」或閱讀PHP的imap_search文檔。

此段代碼將檢索到的郵件(然後你可以把它處理到MySQL,請你):

if($emails) 
{ 
    foreach($emails as $email_id) 
    { 
     $email_info = imap_fetch_overview($mailbox,$email_id,0); 
     $message = imap_fetchbody($mailbox,$email_id,2); 
     echo "Subject: " . $email_info[0]->subject . "\n"; 
     echo "Message: " . $message . "\n"; 
    } 
} 

回答您的其他問題:

  1. 它可以處理電子郵件您本地服務器或甚至從您自己的筆記本電腦/它只是桌面電子郵件客戶端的工作方式。
  2. 一旦掌握了基本流程,並不難。