php - Zend Imap,在 Gmail 标签中获取电子邮件

标签 php zend-framework gmail gmail-imap zend-gdata

我正在使用Zend framework从 Gmail 获取电子邮件,目前我只能获取收件箱中的邮件, 身份验证后我设置Token和其他参数

 $imap->requestAndResponse('AUTHENTICATE', $authenticateParams);

 $response = $imap->requestAndResponse('XLIST', $imap->escapeString('', '*'));

在 $responce 变量中,我获取所有标签/文件夹的列表

 Array
(
    [0] => Array
        (
            [0] => XLIST
            [1] => Array
                (
                    [0] => \HasNoChildren
                )

            [2] => /
            [3] => Calendar
        ).................... INBOX, Sent Mails Etc

等等,在执行一些代码并获取索引 [3] 上的名称后,这是我的标签和文件夹。

我在数组中有列表,如下所示。

    Array
(
    [0] => Calendar
    [1] => Drafts
    [2] => Facebook Mails
    [3] => Inbox
    [4] => Junk E-mail
    [5] => Logs
    [6] => Personal Mails
    [7] => Sent Items
    [8] => Office Mails
)

现在我想获取每个消息/文件夹中的电子邮件

我尝试了Zend_Mail_Storage_Folder_Maildir,但我不知道如何确切地获取上述每个文件夹中的消息,我正在使用 Imap,

通过如下打开存储

$storage = new Zend_Mail_Storage_Imap($imap);

这仅返回收件箱文件夹中的邮件。

最佳答案

显示所有文件夹

    $storage = new Zend_Mail_Storage_Imap($this->imap);
    $folders = new RecursiveIteratorIterator($storage->getFolders(), RecursiveIteratorIterator::SELF_FIRST);
    echo '<select name="folder">';
    foreach ($folders as $localName => $folder) {
        $localName = str_pad('', $folders->getDepth(), '-', STR_PAD_LEFT) .
                $localName;
        echo '<option';
        if (!$folder->isSelectable()) {
            echo ' disabled="disabled"';
        }
        echo ' value="' . htmlspecialchars($folder) . '">'
        . htmlspecialchars($localName) . '</option>';
    }
    echo '</select>';

选择文件夹

$storage->selectFolder("[Gmail]/Sent Mail");

[Gmail]/已发送邮件用于选择已发送邮件文件夹的标签

关于php - Zend Imap,在 Gmail 标签中获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972382/

相关文章:

php - 如何以可扩展的方式执行多个 MySQL INSERT (PHP)

php - jQuery Masonry - 流体布局问题

php - 编写 MySQL 事件来更新表

php - 使用 AJAX/jQuery 删除 mysql 中的行(Zend Framework 1.12)

python - 使用 OAuth 访问 Gmail 原子提要

php - SESSION 变量不会继续到下一页

php - 锁定和解锁 mysql (Innodb) 中的表行

php - 使用 openid 替换 mysql 用户验证

java - Gmail 应用程序如何获取有关新电子邮件的信息?

email - 如何解决 Gmail 问题? Gmail 将通过 SPF、DKIM 和 DMARC 的电子邮件标记为垃圾邮件