2013-02-21 16 views
6

Uzyskuję dostęp do wiadomości Gmail za pośrednictwem protokołu IMAP przy użyciu PHP. Chciałbym wiedzieć, jakie etykiety (i) każdej wiadomości są oznaczone. Podobno Google ma rozszerzenie IMAP, który zrobi dokładnie to, czego potrzebuję:Uzyskaj etykiety Gmaila przez PHP IMAP?

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

Jednak nie jestem pewien, jak używać tego rozszerzenia poprzez PHP. Istnieją funkcje PHP IMAP dla fetch_header itp., Ale nie widzę surowego "pobierania", które pozwoliłoby mi pobrać informacje o rozszerzeniu. Jakakolwiek rada?

+0

po prostu się nazwa folderu –

+0

rację, ale Gmail pozwala na wiadomości „tag” z wielu etykiet (foldery). Chciałbym listę wszystkich etykiet związanych z konkretną wiadomością. Mogę pobrać każdą wiadomość z każdego interesującego folderu, ale jest to trochę kłopotliwe, ponieważ kilka razy otrzymałem wiadomości (tak mi się wydaje), a następnie musiałbym je jakoś scalić. Myślę, że rozszerzenie zapewni mi to, czego potrzebuję, po prostu nie jestem pewien, jak uzyskać do niego dostęp za pośrednictwem PHP. – aaknitt

+0

Zaimplementowano tutaj https://github.com/anod/gmail-imap-php/blob/master/src/Anod/Gmail/Gmail.php –

Odpowiedz

0

Spróbuj ten

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

To nie odpowiada na pytanie. –

Powiązane problemy