Bir Mail klasör Zend Mail kullanarak olup olmadığını kontrol edin

1 Cevap php

Bir e-posta klasör Zend_Mail_Storage_Imap kullanarak Varlığından olmadığını nasıl kontrol edebilirim, bir CreateFolder, renameFOlder ve removeFolder ve aynı zamanda bir getFOlders gidecekseniz ama belli bir posta klasörü varsa tam olarak herhangi bir sabit yöntem sorgulamak için? GetFOlders ile başlamak için bir klasör humonogous ağaç döndürür.

1 Cevap

Ben önce Zend_Mail_Storage_Imap ile çalıştı ettik, ama ben kaynağından toplamaktadır ne, bu hile yapmak gerekir:

/**
 * Checks if a folder exists by name.
 * @param Zend_Mail_Storage_Imap $imapObj Our IMAP object.
 * @param string $folder The name of the folder to check for.
 * @return boolean True if the folder exists, false otherwise.
 */
function folderExists(Zend_Mail_Storage_Imap $imapObj, $folder) {
    try {
        $imapObj->selectFolder($folder);
    } catch (Zend_Mail_Storage_Exception $e) {
        return false;
    }
    return true;
}

Eğer çek ile geçerli klasör korumak istiyorsanız, tabii ki, biraz yanıltıcıdır alır:

/**
 * Checks if a folder exists by name.
 * @param Zend_Mail_Storage_Imap $imapObj Our IMAP object.
 * @param string $folder The name of the folder to check for.
 * @return boolean True if the folder exists, false otherwise.
 * @throws Zend_Mail_Storage_Exception if the current folder cannot be restored.
 */
function folderExists(Zend_Mail_Storage_Imap $imapObj, $folder) {
    $result    = true;
    $oldFolder = $imapObj->getCurrentFolder();
    try {
        $imapObj->selectFolder($folder);
    } catch (Zend_Mail_Storage_Exception $e) {
        $result = false;
    }
    $imapObj->selectFolder($oldFolder);
    return $result;
}

(Bu durumla başa çıkmak için nasıl Sizin tercihi, tabii ki, bir çok özensiz olduğunu, değişebilir.)