通过PHP IMAP获取Gmail标签?

时间:2013-02-21 02:52:41

标签: php gmail imap

我正在使用PHP通过IMAP访问Gmail邮件。我想知道每条消息被标记的标签。显然,Google有一个IMAP扩展程序可以完全满足我的需求:

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

但是,我不确定如何通过PHP使用此扩展。 fetch_header等有PHP IMAP函数,但是我没有看到原始的“fetch”让我抓住这个扩展信息。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

试试这个

define('EMAIL_HOSTNAME', '{imap.gmail.com:993/imap/ssl}INBOX');
define('EMAIL_USERNAME', 'yourid@gmail.com');
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);