roundcubemail/program/lib/Roundcube/rcube_imap.php
public function delete_message($uids, $folder='')
    {
        if (!strlen($folder)) {
            $folder = $this->folder;
        }

        list($uids, $all_mode) = $this->parse_uids($uids);

        // exit if no message uids are specified
        if (empty($uids)) {
            return false;
        }

        if (!$this->check_connection()) {
            return false;
        }

        $deleted = $this->conn->flag($folder, $uids, 'DELETED');

        if ($deleted) {
            // send expunge command in order to have the deleted message
            // really deleted from the folder
            $this->expunge_message($uids, $folder, false);
            $this->clear_messagecount($folder);

            // unset threads internal cache
            unset($this->icache['threads']);

            $this->set_search_dirty($folder);

            // remove message ids from search set
            if ($this->search_set && $folder == $this->folder) {
                // threads are too complicated to just remove messages from set
                if ($this->search_threads || $all_mode) {
                    $this->refresh_search();
                }
                else if (!$this->search_set->incomplete) {
                    $this->search_set->filter(explode(',', $uids));
                }
            }

            // remove cached messages
            $this->clear_message_cache($folder, $all_mode ? null : explode(',', $uids));
        }

        return $deleted;
    }
public function delete_message($uids, $folder='')
    {
        if (!strlen($folder)) {
            $folder = $this->folder;
        }

        list($uids, $all_mode) = $this->parse_uids($uids);

        // exit if no message uids are specified
        if (empty($uids)) {
            return false;
        }

        if (!$this->check_connection()) {
            return false;
        }

        $deleted = $this->conn->flag($folder, $uids, 'DELETED');

        if ($deleted) {
            // send expunge command in order to have the deleted message
            // really deleted from the folder
            $this->expunge_message($uids, $folder, false);
            $this->clear_messagecount($folder);

            // unset threads internal cache
            unset($this->icache['threads']);

            $this->set_search_dirty($folder);

            // remove message ids from search set
            if ($this->search_set && $folder == $this->folder) {
                // threads are too complicated to just remove messages from set
                if ($this->search_threads || $all_mode) {
                    $this->refresh_search();
                }
                else if (!$this->search_set->incomplete) {
                    $this->search_set->filter(explode(',', $uids));
                }
            }

            // remove cached messages
            $this->clear_message_cache($folder, $all_mode ? null : explode(',', $uids));
        }

        return $deleted;
    }
public function delete_message ( $ uids , $ folder = '' ) { if ( ! strlen ( $ folder ) ) { $ folder = $ this -> folder ; } list ( $ uids , $ all_mode ) = $ this -> parse_uids ( $ uids ) ; // exit if no message uids are specified if ( empty ( $ uids ) ) { return false ; } if ( ! $ this -> check_connection ( ) ) { return false ; } $ deleted = $ this -> conn -> flag ( $ folder , $ uids , 'DELETED' ) ; if ( $ deleted ) { // send expunge command in order to have the deleted message // really deleted from the folder $ this -> expunge_message ( $ uids , $ folder , false ) ; $ this -> clear_messagecount ( $ folder ) ; // unset threads internal cache unset ( $ this -> icache [ 'threads' ] ) ; $ this -> set_search_dirty ( $ folder ) ; // remove message ids from search set if ( $ this -> search_set && $ folder == $ this -> folder ) { // threads are too complicated to just remove messages from set if ( $ this -> search_threads || $ all_mode ) { $ this -> refresh_search ( ) ; } else if ( ! $ this -> search_set -> incomplete ) { $ this -> search_set -> filter ( explode ( ',' , $ uids ) ) ; } } // remove cached messages $ this -> clear_message_cache ( $ folder , $ all_mode ? null : explode ( ',' , $ uids ) ) ; } return $ deleted ; }
Mark messages as deleted and expunge them

@param mixed  $uids    Message UIDs as array or comma-separated string, or '*'
@param string $folder  Source folder

@return boolean True on success, False on error
Mark messages as deleted and expunge them