.. _lib-storage_mail_user: ========= Mail User ========= ``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->username`` gives you the actual username string (e.g. ``user@domain.org``). - ``user->set`` gives you access to user's settings. - ``user->namespaces`` points to a linked list of user's namespaces. - ``mail_user_get_home()`` returns user's home directory, if there's one. - ``mail_user_home_expand()`` expands ``~/`` at the beginning of given path to user's actual home directory. - ``mail_user_plugin_getenv()`` returns value for a setting defined in ``plugin {}`` section. Typically each new IMAP/POP3/etc. connection creates a single mail user. If the same process handles multiple connections for the same user, they don't share the same mail_user (especially since each mail_user has a unique session ID). 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.