"Brief" summary/overview of changes. See the PR discussion or individual commits from the PR for more details. --- Only applies to the `docs/content/**` content (_and `setup` command_). `target/` and `test/` can be normalized at a later date. * Normalize to `example.com` - Domains normalized to `example.com`: `mywebserver.com`, `myserver.tld`, `domain.com`, `domain.tld`, `mydomain.net`, `my-domain.tld`, `my-domain.com`, `example.org`, `whoami.com`. - Alternative domains normalized to `not-example.com`: `otherdomain.com`, `otherdomain.tld`, `domain2.tld`, `mybackupmx.com`, `whoareyou.org`. - Email addresses normalized to `admin@example.com` (in `ssl.md`): `foo@bar.com`, `yourcurrentemail@gmail.com`, `email@email.com`, `admin@domain.tld`. - Email addresses normalized to `external-account@gmail.com`: `bill@gates321boom.com`, `external@gmail.com`, `myemail@gmail.com`, `real-email-address@external-domain.com`. - **`faq.md`:** A FAQ entry title with `sample.domain.com` changed to `subdomain.example.com`. - **`mail-fetchmail.md`:** Config examples with FQDNs for `imap`/`pop3` used `example.com` domain for a third-party, changed to `gmail.com` as more familiar third-party/external MTA. * Normalize config volume path - Normalizing local config path references to `./docker-data/dms/config/`: `./config/`, `config/`, \``config`\`, `/etc/` (_volume mount src path prefix_). - Normalize DMS volume paths to `docker-data/dms/mail-{data,state,log}`: `./mail`, `./mail-state` `./data/mail`, `./data/state`, `./data/logs`, `./data/maildata`, `./data/mailstate`, `./data/maillogs`, (_dropped/converted data volumes: `maildata`, `mailstate`_). - Other docker images also adopt the `docker-data/{service name}/` prefix. * `ssl.md` - Use `dms/custom-certs` where appropriate. * Apply normalizations to README and example `docker-compose.yml` --- Common terms, sometimes interchangeably used or now invalid depending on context: `mail`, `mail container`, `mail server`, `mail-server`, `mailserver`,`docker-mailserver`, `Docker Mailserver`. Rough transformations applied to most matches (_conditionally, depending on context_): - 'Docker Mailserver' => '`docker-mailserver`' - 'mail container' => '`docker-mailserver`' (_optionally retaining ' container'_) - 'mail server' => 'mail-server' / '`docker-mailserver`' - 'mail-server' => '`docker-mailserver`' - 'mailserver' => 'mail-server' / '`docker-mailserver`' Additionally I checked `docker run` (_plus `exec`, `logs`, etc, sub-commands_) and `docker-compose` commands. Often finding usage of `mail` instead of the expected `mailserver` Additionally changes `mailserver` hostname in k8s to `mail` to align with other non-k8s examples. --- * drive-by revisions Mostly minor revisions or improvements to docs that aren't related to normalization effort.
4.4 KiB
title | hide | |
---|---|---|
Use Cases | Customize Mailbox Folders |
|
Mailboxes (aka IMAP Folders)
INBOX
is setup as the private inbox
namespace. By default target/dovecot/15-mailboxes.conf
configures the special IMAP folders Drafts
, Sent
, Junk
and Trash
to be automatically created and subscribed. They are all assigned to the private inbox
namespace (which implicitly provides the INBOX
folder).
These IMAP folders are considered special because they add a "SPECIAL-USE" attribute, which is a standardized way to communicate to mail clients that the folder serves a purpose like storing spam/junk mail (\Junk
) or deleted mail (\Trash
). This differentiates them from regular mail folders that you may use for organizing.
Adding a mailbox folder
See target/dovecot/15-mailboxes.conf
for existing mailbox folders which you can modify or uncomment to enable some other common mailboxes. For more information try the official Dovecot documentation.
The Archive
special IMAP folder may be useful to enable. To do so, make a copy of target/dovecot/15-mailboxes.conf
and uncomment the Archive
mailbox definition. Mail clients should understand that this folder is intended for archiving mail due to the \Archive
"SPECIAL-USE" attribute.
With the provided docker-compose.yml example, a volume bind mounts the host directory docker-data/dms/config/
to the container location /tmp/docker-mailserver/
. Config file overrides should instead be mounted to a different location as described in Overriding Configuration for Dovecot:
volumes:
- ./docker-data/dms/config/dovecot/15-mailboxes.conf:/etc/dovecot/conf.d/15-mailboxes.conf:ro
Caution
Adding folders to an existing setup
Handling of newly added mailbox folders can be inconsistent across mail clients:
- Users may experience issues such as archived emails only being available locally.
- Users may need to migrate emails manually between two folders.
Support for SPECIAL-USE
attributes
Not all mail clients support the SPECIAL-USE
attribute for mailboxes (defined in RFC 6154). These clients will treat the mailbox folder as any other, using the name assigned to it instead.
Some clients may still know to treat these folders for their intended purpose if the mailbox name matches the common names that the SPECIAL-USE
attributes represent (eg Sent
as the mailbox name for \Sent
).
Internationalization (i18n)
Usually the mail client will know via context such as the SPECIAL-USE
attribute or common English mailbox names, to provide a localized label for the users preferred language.
Take care to test localized names work well as well.
Email Clients Support
- If a new mail account is added without the
SPECIAL-USE
attribute enabled for archives:- Thunderbird suggests and may create an
Archives
folder on the server. - Outlook for Android archives to a local folder.
- Spark for Android archives to server folder named
Archive
.
- Thunderbird suggests and may create an
- If a new mail account is added after the
SPECIAL-USE
attribute is enabled for archives:- Thunderbird, Outlook for Android and Spark for Android will use the mailbox folder name assigned.
!!! caution "Windows Mail"
**Windows Mail** has been said to ignore `SPECIAL-USE` attribute and look only at the mailbox folder name assigned.
!!! note "Needs citation"
This information is provided by the community.
It presently lacks references to confirm the behaviour. If any information is incorrect please let us know! :smile: