Skip to content

Update documentation for IMAP, SMTP, LMTP, POP3, ManageSieve, TLS, OIDC#3040

Merged
Arsnael merged 3 commits into
apache:masterfrom
giz-berlin:refactor-server-docs
May 18, 2026
Merged

Update documentation for IMAP, SMTP, LMTP, POP3, ManageSieve, TLS, OIDC#3040
Arsnael merged 3 commits into
apache:masterfrom
giz-berlin:refactor-server-docs

Conversation

@felixauringer
Copy link
Copy Markdown
Contributor

Originally, I only wanted to update some documentation for ManageSieve after I did not include proper documentation in #2773 and #2808.

I noticed that every protocol had its own documentation for OIDC and PROXY protocol and introduced a new partial for OIDC and the common server configuration options.
As I found some inconsistencies between code and documented options, I also rewrote the documentation for the protocol-specific configuration options.

I know that this is a lot but I hope that you have a look at it at some time. I really think that these changes could make the configuration of James a little easier 🙂

A note regarding the extendable server: I noticed that building the docs throws some errors on master. All of them originate from the extendable server that includes partials incorrectly. As it is not included in the navigation and all included pages are also included in the distributed server, I just removed the docs for the extendable server altogether. It's a single commit, so I can drop it quickly if you have future plans to fix that part of the documentation.

The extendable server is only referenced in very few places and
is not included in the navigation. Furthermore, all of its pages
include partials that are already included elsewhere and link
to the postgres server in most cases.
Additionally, all files that produce errors when building the
docs are part of the documentation for the extendable server.
…r in own partials

This also updates and completely reworks these parts of the documentation.
Major corrections include:

OIDC:
- `oidc.oidcConfigurationURL`: This value is not used.
- `oidc.scope`: This value is not used.
- Clarify how tokens are validated depending on which config options are provided.

Server:
- `helloName` sometimes documented as `handler.helloName`.
- Value of `helloName` is only used if `autodetect` is explicitly set to false.
- It is `connectiontimeout`, NOT `connectionTimeout`.
- Document default values.
…ieve, POP3, and TLS

This includes the following major corrections:

IMAP:
- `auth.requireSSL`: This does not enforce TLS for authentication with OIDC
- `disabledCaps`: Make clear that capabilities are enabled but only not advertised
- Negative values for `timeout` throw an error.
- Option `provisionDefaultMailboxes` was undocumented.

POP3:
- Properly document `handlerchain`.

ManageSieve: No major corrections.

SMTP:
- Properly document `handlerchain`.
- `authRequired` does not enforce authentication.
- `auth.announce` influences announcement for PLAIN/LOGIN but disables OIDC.
- `auth.requireSSL` only disallows clear text for OIDC.
- `disabledFeatures`: Make clear that the features are not disabled.
- Update security recommendations and add some warnings.

LMTP:
- Properly document `handlerchain`.

TLS:
- Document all options.
- Strongly recommend to use implicit TLS everywhere except port 25.
- Update commands for PEM and keystore certs.
- Add some examples for using ACME clients for proper certificates.
@felixauringer felixauringer force-pushed the refactor-server-docs branch from 7345cd4 to 6bbec73 Compare May 15, 2026 09:15
Comment thread docs/modules/servers/partials/configure/ssl.adoc
Copy link
Copy Markdown
Contributor

@chibenwa chibenwa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@chibenwa
Copy link
Copy Markdown
Contributor

A note regarding the extendable server

That's some legacy from the original contribution, removing it is the right call

@Arsnael
Copy link
Copy Markdown
Contributor

Arsnael commented May 18, 2026

Hi @felixauringer

I know that this is a lot but I hope that you have a look at it at some time. I really think that these changes could make the configuration of James a little easier

No it's not a lot to ask on the contrary. We all know we need to make the documentation of James easier and more user-friendly with a better structure for a better adoption in general. Thank you very much for spending time on this, it adds great value!

@Arsnael Arsnael merged commit c740825 into apache:master May 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants