Я не работал с 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;
}
(Ваше предпочтение того, как справиться с этой ситуацией, может, конечно, отличаться, что оно довольно небрежное.)