Skip to content

Commit 97715a4

Browse files
committed
feat(web): upgrade to mailserver-admin 5.13
mailserver-admin now includes a feature to generate mobileconfig files for iOS and macOS. These files are signed with the same TLS certificate that the mailserver displays to connecting clients. To generate these files, it’s necessary to mount the certificate to the web container. closes #645
1 parent 8512a44 commit 97715a4

9 files changed

Lines changed: 41 additions & 7 deletions

File tree

.mkdocs.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ nav:
3939
- administration/dkim-signing.md
4040
- administration/dns-validation-wizard.md
4141
- administration/user-roles.md
42+
- administration/ios-macos-profile.md
4243
- Recipes:
4344
- Docker:
4445
- Traefik Reverse Proxy: https://github.com/jeboehm/docker-mailserver/tree/main/docs/example-configs/compose/traefik-reverse-proxy

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ The documentation includes:
3535
- Restriction of sender addresses for enhanced security
3636
- Full-text search and enforced TLS
3737
- DNS Validation Wizard for all mail related DNS records
38+
- Generates configuration profiles for iOS and macOS devices
39+
- Supports assisted client configuration in Outlook and Thunderbird
3840
- Continuous health monitoring
3941

4042
See the [documentation](https://jeboehm.github.io/docker-mailserver/) for a complete feature list.
@@ -62,7 +64,7 @@ For detailed installation instructions, see the [Installation Guide](https://jeb
6264

6365
### DNS Validation Wizard
6466

65-
![DNS Validation Wizard](docs/images/admin/dns_validation_wizard.png)
67+
![DNS Validation Wizard](docs/images/admin/dns_wizard.png)
6668

6769
## Links
6870

deploy/compose/web.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ services:
2424
- /opt/roundcube/temp:mode=0777
2525
- /opt/roundcube/logs:mode=0777
2626
- /tmp:mode=0777
27-
# For use with jwilder/nginx-proxy.
28-
# environment:
29-
# - VIRTUAL_HOST=mail.example.com
27+
volumes:
28+
- data-tls:/opt/admin/tls:ro
29+
# For using external certificates uncomment the following lines
30+
# and change the path on the left side of the colon.
31+
# - /home/user/certs/mail.example.com.crt:/opt/admin/tls/tls.crt:ro
32+
# - /home/user/certs/mail.example.com.key:/opt/admin/tls/tls.key:ro

deploy/kustomize/web/deployment.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ spec:
9797
- name: tmp
9898
mountPath: /opt/roundcube/logs
9999
subPath: rc-logs
100+
- name: tls-certs
101+
mountPath: /opt/admin/tls
100102
initContainers:
101103
- name: prepare-service
102104
image: jeboehm/mailserver-web:latest
@@ -145,5 +147,13 @@ spec:
145147
seccompProfile:
146148
type: RuntimeDefault
147149
volumes:
150+
- name: tls-certs
151+
secret:
152+
items:
153+
- key: tls.crt
154+
path: tls.crt
155+
- key: tls.key
156+
path: tls.key
157+
secretName: tls-certs
148158
- name: tmp
149159
emptyDir: {}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# iOS / macOS Profile
2+
3+
The iOS / macOS Profile feature generates configuration profiles for Apple Mail on iOS and macOS devices. These profiles automatically configure IMAP and SMTP access, eliminating the need for manual email account setup.
4+
5+
Please refer to Apple's documentation for more information.
6+
7+
- [MacOS documentation](https://support.apple.com/en-us/guide/mac-help/mh35561/mac)
8+
- [iOS documentation](https://support.apple.com/en-us/102400)

docs/administration/user-roles.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ In `mailserver-admin`, there are three distinct user roles, each with different
3434

3535
- Login to the application
3636
- Configure and manage their personal fetchmail accounts
37+
- Change their own password with strict password policy
3738

3839
**Restrictions**:
3940

docs/upgrade.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ Upgrade guide for docker-mailserver.
44

55
When upgrading, ensure that container configuration files are updated to match the requirements of the new version. Review the manifests in `deploy/compose` and `deploy/kustomize` for any changes to persistent volumes or configuration, and update them as necessary. If new environment variables have been introduced, update the `.env` file accordingly.
66

7+
## v7.1
8+
9+
- **web**: mailserver-admin now includes a feature to generate mobileconfig files for iOS and macOS. These files are signed with the same TLS certificate that the mailserver displays to connecting clients. To generate these files, it’s necessary to mount the certificate to the web container.
10+
711
## v6.x to v7.x
812

913
The web image is now based on Alpine Linux and uses FrankenPHP instead of PHP-FPM.

target/web/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ RUN --mount=type=cache,target=/root/.composer \
7474

7575
FROM composer AS admin-builder
7676

77-
ARG ADMIN_VER=5.12.0 # renovate: depName=jeboehm/mailserver-admin
77+
ARG ADMIN_VER=5.13.0 # renovate: depName=jeboehm/mailserver-admin
7878
WORKDIR /opt/admin
7979
RUN curl -sSLf \
8080
-o /tmp/admin.tar.gz \

test/bats/integration/050_web.bats

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ setup() {
66
}
77

88
@test "http connection to manager web interface" {
9-
run curl -L "http://${WEB_HTTP_ADDRESS}/manager/"
9+
run curl -L "http://${WEB_HTTP_ADDRESS}/"
1010
assert_output --partial "Email address"
1111
}
1212

@@ -21,6 +21,11 @@ setup() {
2121
}
2222

2323
@test "http connection to autoconfigure file" {
24-
run curl "http://${WEB_HTTP_ADDRESS}/.well-known/autoconfig/mail/config-v1.1.xml"
24+
run curl "http://${WEB_HTTP_ADDRESS}/mail/config-v1.1.xml"
2525
assert_output --partial "clientConfig"
2626
}
27+
28+
@test "http connection to autodiscover file" {
29+
run curl "http://${WEB_HTTP_ADDRESS}/autodiscover/autodiscover.xml"
30+
assert_output --partial "DomainRequired"
31+
}

0 commit comments

Comments
 (0)