Skip to content

Commit b4ca331

Browse files
committed
chore(docs): split features page into separate documents
1 parent 5c6ae56 commit b4ca331

7 files changed

Lines changed: 114 additions & 109 deletions

File tree

.github/linters/super-linter-fix.env

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ FIX_JSON=true
33
FIX_JSON_PRETTIER=true
44
FIX_MARKDOWN=true
55
FIX_MARKDOWN_PRETTIER=true
6-
FIX_PYTHON_BLACK=true
76
FIX_PYTHON_ISORT=true
87
FIX_PYTHON_RUFF=true
98
FIX_PYTHON_RUFF_FORMAT=true

README.md

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -80,40 +80,51 @@ and the documentation [Use another MySQL instance](docs/EXTERNAL_MYSQL.md) for d
8080
| Webmail | http://127.0.0.1:81/webmail/ |
8181
| Rspamd web interface | http://127.0.0.1:81/rspamd/ |
8282

83-
## Screenshots
84-
85-
### Manage users
86-
87-
![User overview](https://raw.githubusercontent.com/jeboehm/mailserver-admin/master/.github/screenshots/user.png)
88-
89-
### Manage aliases
90-
91-
![Alias overview](https://raw.githubusercontent.com/jeboehm/mailserver-admin/master/.github/screenshots/alias.png)
92-
93-
### DKIM setup
94-
95-
![DKIM setup](https://raw.githubusercontent.com/jeboehm/mailserver-admin/master/.github/screenshots/dkim_edit.png)
96-
9783
## Documentation
9884

9985
- [Upgrade Guide](docs/UPGRADE.md)
100-
- [Features](docs/FEATURES.md)
10186
- [Service Architecture](docs/ARCHITECTURE.md)
10287
- Installation:
10388
- [Kustomize External Database and HTTPS Ingress Example](docs/example-configs/kustomize/external-db-and-https-ingress/README.md)
10489
- [Compose Traefik Reverse Proxy Example](docs/example-configs/compose/traefik-reverse-proxy/README.md)
10590
- Configuration:
91+
- [DKIM Signing](docs/DKIM_SIGNING.md)
10692
- [Environment Variables](docs/ENVIRONMENT_VARIABLES.md)
107-
- [Roundcube](docs/ROUNDCUBE.md)
108-
- [TLS](docs/TLS.md)
10993
- [External MySQL](docs/EXTERNAL_MYSQL.md)
11094
- [External relay host](docs/RELAYHOST.md)
111-
- [Reverse Proxy](docs/REVERSE_PROXY.md)
95+
- [Local Address Extension](docs/LOCAL_ADDRESS_EXTENSION.md)
11296
- [PHP Sessions](docs/PHP_SESSIONS.md)
97+
- [Reverse Proxy](docs/REVERSE_PROXY.md)
98+
- [Roundcube](docs/ROUNDCUBE.md)
99+
- [TLS](docs/TLS.md)
113100
- [Developer Guide](docs/DEVELOPMENT.md)
114101

102+
## Screenshots
103+
104+
### Manage users
105+
106+
![User overview](https://raw.githubusercontent.com/jeboehm/mailserver-admin/master/.github/screenshots/user.png)
107+
108+
### Manage aliases
109+
110+
![Alias overview](https://raw.githubusercontent.com/jeboehm/mailserver-admin/master/.github/screenshots/alias.png)
111+
112+
### DKIM setup
113+
114+
![DKIM setup](https://raw.githubusercontent.com/jeboehm/mailserver-admin/master/.github/screenshots/dkim_edit.png)
115+
115116
## Links
116117

117118
- [Issues](https://github.com/jeboehm/docker-mailserver/issues)
118-
- [mailserver-admin](https://github.com/jeboehm/mailserver-admin)
119-
- [fetchmailmgr](https://github.com/jeboehm/fetchmailmgr)
119+
- Container Images:
120+
- [ghcr.io](https://github.com/jeboehm?tab=packages&repo_name=docker-mailserver)
121+
- [Docker Hub](https://hub.docker.com/u/jeboehm?page=1&search=mailserver)
122+
- Components:
123+
- [dovecot](https://doc.dovecot.org/2.4.1/)
124+
- [fetchmailmgr](https://github.com/jeboehm/fetchmailmgr)
125+
- [mailserver-admin](https://github.com/jeboehm/mailserver-admin)
126+
- [postfix](https://www.postfix.org/documentation.html)
127+
- [redis](https://redis.io/docs/latest/)
128+
- [roundcube](https://docs.roundcube.net/doc/help/1.1/en_US/)
129+
- [rspamd](https://docs.rspamd.com/)
130+
- [unbound](https://unbound.docs.nlnetlabs.nl/en/latest/)

docs/DKIM_SIGNING.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# DKIM Signing
2+
3+
DKIM (DomainKeys Identified Mail) signing provides cryptographic authentication for outgoing emails. This feature signs all outgoing emails from configured domains with a private key, allowing recipients to verify email authenticity through DNS records.
4+
5+
## Implementation details
6+
7+
DKIM signing is implemented using the Rspamd DKIM module. Each domain requires a separate DKIM key pair consisting of a private key (stored in docker-mailserver) and a public key (published in DNS).
8+
9+
Rspamd verifies the DNS record for each domain before signing outgoing messages. This ensures that only domains with valid DKIM DNS records will have their emails signed, preventing false signatures.
10+
11+
## Configuration steps
12+
13+
Configure DKIM through the management interface:
14+
15+
1. Access the management interface
16+
2. Navigate to DKIM in the menu bar
17+
3. Select the domain for DKIM configuration
18+
4. Generate the private key
19+
5. Add the provided DNS TXT record to your domain's DNS
20+
6. Verify the DNS record through the management interface
21+
7. Enable DKIM signing for the domain
22+
23+
## DNS Record
24+
25+
The management interface provides a DNS TXT record that must be added to your domain's DNS configuration. The record contains the public key used for DKIM verification by receiving mail servers.
26+
27+
## Operation
28+
29+
Once enabled, all outgoing emails from the configured domain are automatically signed with the DKIM private key. Receiving mail servers can verify the signature using the public key published in DNS, confirming the email's authenticity and integrity.

docs/FEATURES.md

Lines changed: 0 additions & 88 deletions
This file was deleted.

docs/LOCAL_ADDRESS_EXTENSION.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Local Address Extension
2+
3+
Local address extension allows multiple unique email addresses to be delivered to a single mailbox without additional configuration. This feature implements RFC 5233 subaddressing and is commonly known as plus-addressing.
4+
5+
## Implementation
6+
7+
The feature appends a configurable delimiter followed by any string to the base email address. All emails sent to extended addresses are delivered to the original mailbox. The default delimiter is `-` (dash).
8+
9+
Alternative names for this feature:
10+
11+
- Plus-addressing (traditional `+` delimiter)
12+
- Subaddressing (RFC 5233 standard)
13+
- Address tagging
14+
15+
## Examples
16+
17+
```text
18+
19+
20+
21+
22+
23+
```
24+
25+
## Configuration
26+
27+
Configure the delimiter using the `RECIPIENT_DELIMITER` environment variable:
28+
29+
```yaml
30+
environment:
31+
- RECIPIENT_DELIMITER=+
32+
```
33+
34+
This changes the delimiter from `-` to `+`, allowing addresses like `[email protected]`.
35+
36+
## Sieve Integration
37+
38+
Extended addresses can be used in Sieve filtering rules for automated email processing. Sieve rules can sort emails into folders, apply actions, or forward based on the extension used.
39+
40+
Example Sieve rule for `[email protected]`:
41+
42+
```sieve
43+
if address :matches :localpart "to" "user1-newsletter*" {
44+
fileinto "Newsletters";
45+
}
46+
```
47+
48+
## Use Cases
49+
50+
- Email categorisation by source or purpose
51+
- Service-specific addresses without multiple mailboxes
52+
- Spam source identification
53+
- Temporary address generation
54+
- Email routing and filtering

docs/logo/logo.png

-53.2 KB
Loading

docs/logo/social.png

-50.9 KB
Loading

0 commit comments

Comments
 (0)