Dovecot Design

Protocol extensions

Code APIs

  • Coding style - explanations how and why the Coding style is the way it is.

Look at the *.h files for the actual API documentation. The documentation below doesn’t attempt to list full API documentation.

liblib:

lib-dcrypt:

lib-storage:

  • Mail user contains everything related to a single user.

  • Mail namespace A single user can contain multiple namespaces.

  • Mailbox list is used to list/manage a list of mailboxes for a single namespace (1:1 relationship).

  • Mail storage is used to access mails in a specific location with a specific mailbox format. Multiple namespaces can point to the same storage. A single namespace may in future (but not currently) point to multiple storages (e.g. a mixed mbox and Maildir directory).

  • Mailbox is used to access a specific mailbox in a storage.

  • Mail is used to access a specific mail in a mailbox.

  • Error handling.

  • Plugins - how to hook into lib-storage functions.