diff --git a/docs/content/config/account-management/overview.md b/docs/content/config/account-management/overview.md index d0cc42bb..fd4ab469 100644 --- a/docs/content/config/account-management/overview.md +++ b/docs/content/config/account-management/overview.md @@ -2,12 +2,29 @@ ## Mail Accounts - Domains, Addresses, Aliases -`ACCOUNT_PROVISIONER` and supplementary pages referenced here. +**TODO:** `ACCOUNT_PROVISIONER` and supplementary pages referenced here. -An account has an email address `local-part@domain-part`. +An email address should conform to the [expected syntax](https://en.wikipedia.org/wiki/Email_address#Syntax). + +!!! info + + In the DMS docs, there may be references to the sub-components of an address (`local-part@domain-part`). ### Accounts +To receive or send mail, you'll need to provision users into DMS with accounts. A DMS account will provide information such as their email address, login username, and any aliases. + +The email address assigned to an account is relevant for: + +- Receiving delivery to an inbox, when DMS receives mail for that address as the recipient (_or an alias that resolves to it_). +- Mail submission with: + - `SPOOF_PROTECTION=1` restricts the sender address to the DMS account email address, unless additional sender addresses have been permitted via supported config. + - `SPOOF_PROTECTION=0` allows DMS accounts to use any sender address, only a single DMS account is necessary to send mail with different sender addresses. + +!!! warning + + Ensure that you avoid configuring email addresses with the [sub-address tag delimiter](#sub-addressing), otherwise opt-out of the sub-addressing feature. + ### Aliases You may read [Postfix's documentation on virtual aliases][postfix-docs::virtual-alias] first. diff --git a/docs/content/config/account-management/provisioner/file.md b/docs/content/config/account-management/provisioner/file.md index 4e1f1fc6..68f6d84d 100644 --- a/docs/content/config/account-management/provisioner/file.md +++ b/docs/content/config/account-management/provisioner/file.md @@ -4,27 +4,46 @@ title: 'Account Management | File Provisioner' ## Accounts -Users (email accounts) are managed in `/tmp/docker-mailserver/postfix-accounts.cf`. +**Config file:** `docker-data/dms/config/postfix-accounts.cf`. -The best way to manage accounts is to use our `setup` CLI provided inside the container. +The best way to manage DMS accounts and related config files is through our `setup` CLI provided within the container. -!!! example "Using `setup` within the container" +!!! example "Using the `setup` CLI" Try the following within the DMS container (`docker exec -it bash`): - - Add an account: `setup email add ` - - Add an alias: `setup alias add ` - - Learn more about subcommands available: `setup help` + - Add an account: `setup email add ` + - Add an alias: `setup alias add ` + - Learn more about the available subcommands via: `setup help` + + ```console + # Spin up a basic DMS instance and then shells into the container to provision accounts: + $ docker run --rm -itd --name dms --hostname mail.example.com ghcr.io/docker-mailserver/docker-mailserver:latest + $ docker exec -it dms bash + + # Create some accounts: + $ setup email add john.doe@example.com bad-password + $ setup email add jane.doe@example.com bad-password + + # Create an alias: + $ setup alias add your-alias-here@example.com john.doe@example.com + ``` + +!!! info + + The email address chosen will also represent the login username credential for mail clients. + + Account creation will also normalize the provided address to lowercase, as DMS does not support multiple address variants relying on case-sensitivity. ### Quotas -`/tmp/docker-mailserver/dovecot-quotas.cf` +**Config file:** `docker-data/dms/config/dovecot-quotas.cf` -- When the mailbox is deleted, the quota directive is deleted as well. +When the mailbox is deleted, the quota directive is deleted as well. ### Aliases -`/tmp/docker-mailserver/postfix-virtual.cf` +**Config file:** `docker-data/dms/config/postfix-virtual.cf` Alias and target are space separated. An example on a server with `example.com` as its domain: