Feature Specification: Component smtp
Created: 2026-10-07
Status: Implemented
Input: Reconstructed from the code of core/components/shared/smtp/ and its wiring in the setups at 14504f80d, pull requests #1383, #1822, #1835 and #1852.
User Scenarios & Testing (mandatory)
User Story 1 - Relay the mail of a group (Priority: P1)
The applications of a group send mail. The smtp component runs maddy as the relay of the group and provides smtp (see smtp). The setup gives each application a submission account with a generated password.
Why this priority: Without a relay, no application can send mail.
Independent Test: A provider contract test, VM tests of DKIM and of the mail reports, and a unit test of the routing.
Acceptance Scenarios:
- Given
autheliaorlldapmachines, When the setups evaluate, Then the relay has an account for each, with the senders of the mail domains.
User Story 2 - Serve submission over TLS (Priority: P2)
Clients submit over TLS, with a certificate from the internal PKI or ACME (see ssl). maddy loads a renewed certificate.
Why this priority: TLS protects the submission passwords.
Independent Test: The provider contract test.
Acceptance Scenarios:
- Given a renewed certificate, Then maddy loads it.
User Story 3 - Alert on bounced mail (Priority: P3)
maddy reports a bounce only in its journal. The node ships the journal to the log store, and a telemetry rule alerts on bounces.
Why this priority: Mail flows without the alert.
Independent Test: No check covers the alert.
Acceptance Scenarios:
- Given a bounced message, Then the bounce alert fires.
Edge Cases
- A group without an
smtpmachine gives no notifier toautheliaand no reset mail tolldap.
Requirements (mandatory)
Functional Requirements
- FR-001: The component MUST provide
smtpand MUST use maddy. - FR-002: The component MUST request
spiffe, so that maddy reads its rotated passwords from OpenBao. - FR-003: The component MUST NOT request forward-auth, because the relay has no web UI.
- FR-004: The setup MUST configure maddy, the accounts and the passwords through the
smtpresource.
Key Entities
- Submission account: One per sending application, with a password in OpenBao.
Success Criteria (mandatory)
Measurable Outcomes
- SC-001: The provider contract test, the DKIM and report VM tests, and the unit tests of the routing and the
lldapmail wiring pass.
Assumptions
- The
hosting-providerandoperatorgroups each run a relay. - The component has no icon.
- The provider, with the external relay, is in the
smtpresource.
Known Deviations
None.