我正在使用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/