src/lib-storage/mail-user.h describes mail user. The struct contains
all kinds of useful information about the user that can be accessed
directly. Some of the most useful things you can do with a user are:
user->usernamegives you the actual username string (e.g.
user->setgives you access to user’s settings.
user->namespacespoints to a linked list of user’s namespaces.
mail_user_get_home()returns user’s home directory, if there’s one.
~/at the beginning of given path to user’s actual home directory.
mail_user_plugin_getenv()returns value for a setting defined in
Typically each new IMAP/POP3/etc. connection creates a single mail user. Currently multiple connections for same user don’t even try to share the mail user, but this may change in future. If a user has shared mailboxes from other users (not public namespaces), a mail user is also created whenever necessary to list/access the user’s mailboxes. Again there is no attempt to share the created mail user with other connections.