【问题标题】:Get Gmail labels via PHP IMAP?通过 PHP IMAP 获取 Gmail 标签?
【发布时间】:2013-02-06 06:38:01
【问题描述】:

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

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

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

【问题讨论】:

  • 你只需获取文件夹名称
  • 正确,但 Gmail 允许您使用多个标签(文件夹)“标记”邮件。我想要与特定消息关联的每个标签的列表。我可以从每个感兴趣的文件夹中获取每条消息,但这有点麻烦,因为我会不止一次地收到一些消息(我认为),然后必须以某种方式合并它们。我认为扩展会给我我需要的东西,我只是不确定如何通过 PHP 访问它。

标签: php gmail imap


【解决方案1】:

试试这个

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);

【讨论】:

  • 这不能回答问题。
猜你喜欢
  • 2013-01-17
  • 2013-12-22
  • 2013-04-07
  • 2010-12-26
  • 1970-01-01
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多