我正在使用Zend framework从Gmail获取电子邮件,目前我只能在INBOX中收到邮件, 身份验证后我使用setToken和其他参数
$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);
这只会返回收件箱文件夹中的邮件。
答案 0 :(得分:2)
显示所有文件夹
$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] /已发邮件标签