2013-02-21 94 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