Проверьте, существует ли папка Mail с помощью Zend Mail - PullRequest
3 голосов
/ 07 апреля 2010

Как я могу проверить, существует ли папка электронной почты, используя Zend_Mail_Storage_Imap, есть createFOlder, renameFOlder и removeFolder, а также getFOlders, но не какой-либо фиксированный метод для запроса, если определенная папка существует? GetFOlders возвращает гуманистическое дерево папок для начала.

1 Ответ

1 голос
/ 09 апреля 2010

Я не работал с Zend_Mail_Storage_Imap раньше, но из того, что я могу почерпнуть из источника, это должно сработать:

/**
 * 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;
}

Если вы хотите сохранить текущую папку с помощью чека, она, конечно, становится немного сложнее:

/**
 * 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;
}

(Ваше предпочтение того, как справиться с этой ситуацией, может, конечно, отличаться, что оно довольно небрежное.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...