2013-02-21 95 views
6

我使用PHP通過IMAP訪問Gmail郵件。我想知道每封郵件標有哪些標籤。顯然,谷歌有一個IMAP擴展,將盡正是我需要的:通過PHP IMAP獲取Gmail標籤?

https://developers.google.com/google-apps/gmail/imap_extensions#access_to_gmail_labels_x-gm-labels

但是,我不知道如何通過PHP使用這個擴展。有fetch_header等PHP IMAP函數,但我沒有看到一個原始的「抓取」,讓我抓住這個擴展信息。有什麼建議?

+0

你剛纔得到的文件夾名稱 – 2013-02-21 02:58:38

+0

權利,但Gmail的允許使用多個標籤(文件夾)你「標籤」的消息。我想要列出與特定郵件相關的每個標籤。我可以從每個感興趣的文件夾中抓取每條消息,但這有點麻煩,因爲我會多次收到一些消息(我認爲),然後必須以某種方式合併它們。我認爲擴展會給我我需要的東西,我只是不確定如何通過PHP訪問它。 – aaknitt 2013-02-21 03:19:35

+0

這是在這裏執行https://github.com/anod/gmail-imap-php/blob/master/src/Anod/Gmail/Gmail.php – 2016-12-30 15:54:40

回答

0

試試這個

define('EMAIL_HOSTNAME', '{imap.gmail.com:993/imap/ssl}INBOX'); 
define('EMAIL_USERNAME', '[email protected]'); 
define('EMAIL_PASSWORD', 'password'); 


$inbox = imap_open(EMAIL_HOSTNAME,EMAIL_USERNAME,EMAIL_PASSWORD) or die('Cannot connect to Gmail: ' . imap_last_error()); 
$emails = imap_search($inbox,'ALL'); 
if($emails) { 

    rsort($emails); 
    foreach($emails as $email_number) { 
     $overview = imap_fetch_overview($inbox,$email_number,0); 
     $message = imap_fetchbody($inbox,$email_number,2); 


     $output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">'; 
     $output.= '<span class="subject">'.$overview[0]->subject.'</span> '; 
     $output.= '<span class="from">'.$overview[0]->from.'</span>'; 
     $output.= '<span class="date">on '.$overview[0]->date.'</span>'; 
     $output.= '</div>'; 


     $output.= '<div class="body">'.$message.'</div>'; 
    } 

} 
imap_close($inbox); 
+0

這並不回答這個問題。 – 2016-12-30 15:42:48