2013-02-21 5 views
6

Ich greife auf Google Mail-Nachrichten über IMAP mit PHP zu. Ich würde gerne wissen, mit welcher (n) Marke (n) jede Nachricht markiert ist. Anscheinend hat Google einen IMAP-Erweiterung, die genau das tun, was ich brauche:Erhalten Sie Google Mail-Labels über PHP IMAP?

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

Allerdings bin ich mir nicht sicher, wie diese Erweiterung über PHP zu verwenden. Es gibt PHP-IMAP-Funktionen für fetch_header usw., aber ich sehe kein rohes "fetch", das mir diese Erweiterungsinformationen zuhört. Irgendein Rat?

+0

Sie nur den Ordnernamen –

+0

Rechte erhalten, aber Google Mail ermöglicht es Ihnen, „Tag“ Meldungen mit mehreren Etiketten (Ordner). Ich hätte gerne eine Liste aller Labels, die mit einer bestimmten Nachricht verknüpft sind. Ich könnte jede Nachricht aus jedem Ordner von Interesse abrufen, aber das ist ein wenig umständlich, da ich einige Nachrichten mehr als einmal bekommen würde (denke ich) und sie dann irgendwie zusammenführen müsste. Ich denke, dass die Erweiterung mir geben wird, was ich brauche, ich bin nur nicht sicher, wie man über PHP darauf zugreift. – aaknitt

+0

Dies ist hier implementiert https://github.com/anod/gmail-imap-php/blob/master/src/Anod/Gmail/Gmail.php –

Antwort

0

Versuchen Sie dieses

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

Dies beantwortet die Frage nicht. –