如何检查是否存在使用Zend_Mail_Storage_Imap的电子邮件文件夹,还有一个createFOlder,renameFOlder和removeFolder以及一个getFOlders,但不知道是否存在任何固定方法来查询某个邮件文件夹是否存在? GetFOlders首先返回一个humonogous文件夹树。
答案 0 :(得分:1)
我之前没有和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;
}
(当然,你对如何处理这种情况的偏好可能会有所不同,那个人很邋。)。