2012-10-19 68 views
2

我使用Zend framework獲取來自Gmail的電子郵件,目前我只能讓收件箱中的郵件只, 身份驗證後我setToken等參數Zend的IMAP,在Gmail中提取電子郵件標籤

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

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

在在$性反應的可變我得到我的所有標籤/文件夾

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 
) 

現在我想每封郵件中提取電子郵件/文件夾

我試圖​​,但我不知道究竟如何,我使用IMAP,

獲取在上述每個文件夾的郵件

打開寄存像下面

$storage = new Zend_Mail_Storage_Imap($imap);

這隻會返回收件箱文件夾中的郵件。

+0

認爲這是沒有辦法的事這個。我通過從「所有郵件」文件夾獲取消息來解決它。 – opHASnoNAME

回答

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] /已發送郵件標籤選擇發送郵件文件夾

相關問題