Skip to content

Upgrade SMTP client to use the (new) settings infrastructure - #1701

Open
sirainen wants to merge 13 commits into
dovecot:mainfrom
sirainen:smtp-client-settings-auto
Open

sirainen wants to merge 13 commits into
dovecot:mainfrom
sirainen:smtp-client-settings-auto

Conversation

@sirainen

Copy link
Copy Markdown
Contributor

DOV-9262

cmouse and others added 3 commits October 20, 2026 12:54
The pattern matched every word of 10 or more characters, which effectively
disabled spell checking for long words: the check-spelling report listed
dozens of allow.txt entries as no longer needed.
@sirainen
sirainen force-pushed the smtp-client-settings-auto branch 2 times, most recently from b9bccc5 to 327a7cd Compare October 21, 2026 20:04
- imapc and pop3c are plain named filters, not named list filters, and the
  [[setting,client_auth]] links were missing a bracket.
- Describe how the mechanism is selected: the first configured mechanism that
  the server advertises is used and there is no fallback after an
  authentication failure. Without any configured mechanism PLAIN or the basic
  login commands are used, and if the server doesn't advertise PLAIN, the
  first server-advertised password mechanism. Authentication is never
  optionally skipped: imapc and pop3c fail with "Authentication not
  configured".
- Document that an empty client_auth_authid falls back to client_auth_authzid,
  the %{owner_user} default inside imapc and pop3c, and the changed pop3c
  default.
- Mention the implicit SCRAM channel binding upgrade.
- Drop the submission_relay and mail_submit examples from the client_auth
  entry. They exist only with the SMTP client settings changes and are
  documented with their own filters.
- Add the added tags.
They weren't removed. settings-history renames them to the client_auth_*
settings inside the imapc { } and pop3c { } filters: the old names still work
with an older dovecot_config_version and in -o and userdb overrides, and
doveconf writes the new names. The new names aren't global either, they are
filter-scoped.

Also document the pop3c_ssl_verify -> pop3c/ssl_client_require_valid_cert
rename, which was missing, and that imapc_sasl_mechanisms still works by being
translated into client_auth filters.
The four client_auth_* setting descriptions can't carry the whole picture:
which clients use them, how the mechanism is selected, how the SCRAM
channel binding upgrade works and how the filter-scoped settings are given
as overrides. Describe all of that in one place. The mapping of the old
per-client credential settings belongs to the upgrade notes instead.
Also point the proxy_mech passdb field to client_auth_mechanism for the list
of mechanisms, and explain in the passdb imap page that the password and the
username are filled in automatically.
These are the generic settings of lib-smtp's SMTP and LMTP client. They are
used inside the submission_relay, mail_submit and lmtp_proxy filters.
…y filters

The SMTP client settings changes move the outgoing SMTP/LMTP connection
settings into filters that hold the generic smtp_client_*/lmtp_client_*,
client_auth_* and ssl_client_* settings:

- submission_relay_* -> submission_relay { smtp_client_* / client_auth_* /
  ssl_client_require_valid_cert }. submission_relay_max_idle_time never did
  anything and is deprecated.
- submission_host/submission_ssl -> mail_submit { smtp_client_host /
  smtp_client_port / smtp_client_ssl }, submission_timeout ->
  mail_submit_timeout, and sendmail_path -> mail_submit { execute sendmail
  { } }. The host:port syntax of submission_host is gone.
- lmtp_proxy (boolean) -> lmtp_proxy_enabled, since lmtp_proxy { } is now the
  filter for the lmtp_client_* settings, and lmtp_proxy_rawlog_dir ->
  lmtp_proxy { lmtp_client_rawlog_dir }. A new lmtp_local { } filter scopes
  settings to local deliveries.

Also list submission_relay and mail_submit as client_auth users in the
client_auth and ssl_client_require_valid_cert descriptions.
The submission relay and mail_submit SMTP clients now use the same
client_auth_* settings. Add them to the client list.
…tings

submission_host and sendmail_path are now configured inside mail_submit { },
lmtp_proxy is lmtp_proxy_enabled, and the rawlog settings moved inside the
lmtp_proxy and submission_relay filters. Add a relay example with
authentication to the submission page.
@sirainen
sirainen force-pushed the smtp-client-settings-auto branch from 327a7cd to 754b166 Compare October 21, 2026 20:12
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.

3 participants