使用Zend Mail检查邮件文件夹是否存在

时间:2010-04-07 10:35:00

标签: php zend-framework

如何检查是否存在使用Zend_Mail_Storage_Imap的电子邮件文件夹,还有一个createFOlder,renameFOlder和removeFolder以及一个getFOlders,但不知道是否存在任何固定方法来查询某个邮件文件夹是否存在? GetFOlders首先返回一个humonogous文件夹树。

1 个答案:

答案 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;
}

(当然,你对如何处理这种情况的偏好可能会有所不同,那个人很邋。)。