Private
Server IP : 195.201.23.43  /  Your IP : 3.147.73.62
Web Server : Apache
System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64
User : kdecoratie ( 1041)
PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/doc/dovecot-core/wiki/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/doc/dovecot-core/wiki/Design.Storage.Mailbox.txt
Mailbox
=======

'src/lib-storage/mail-storage.h' and 'mail-storage-private.h' describes mailbox
API, among others. Mailbox life cycle often goes like:

 * 'mailbox_alloc()' allocates memory for the mailbox and initializes some
   internal settings, but doesn't actually try to open it.
 * 'mailbox_open()' opens the mailbox. Instead of opening a mailbox, you can
   also create it with 'mailbox_create()'.
    * If you're immediately syncing the mailbox, you don't need to open it,
      because it's done implicitly. This reduces your code and error handling a
      bit.
 * 'mailbox_close()' closes the mailbox, so that it needs to be opened again if
   it's wanted to be accessed. This is rarely needed.
 * 'mailbox_free()' closes and frees the mailbox.

There are a lot of functions to deal with mailboxes. The most important ones
are:

 * 'mailbox_get_status()' to get a summary of mailbox, such as number of
   messages in it.
 * <Syncing> [Design.Storage.Mailbox.Sync.txt]: 'mailbox_sync_*()' to
   synchronize changes from the backend to memory.
 * <Transactions> [Design.Storage.Mailbox.Transaction.txt]:
   'mailbox_transaction_*()' for transaction handling. All message reads and
   writes are done in a transaction.
 * <Searching> [Design.Storage.Mailbox.Search.txt]: 'mailbox_search_*()' is
   used for searching messages. Even simple operations like "get all messages"
   go through this API, it'll then simply do "search all".
 * <Saving> [Design.Storage.Mailbox.Save.txt]: 'mailbox_save_*()' and
   'mailbox_copy()' is used for saving/copying new messages to mailbox.

(This file was created from the wiki on 2019-06-19 12:42)
Private