e2e: the run ends on port 25, with a report, junk and inbound mail
Until now the suite only read back the configuration generated for the two optional port-25 features. DMARC ingest shipped in 1.7.0 with a delivery service Postfix could not start, and nothing sent a report through it until a real one arrived on the test server on 2026-10-11. The last steps recreate the container with INBOUND_RELAY_ENABLE and DMARC_REPORTS_ENABLE on, over the same /data, and talk to port 25 as a stranger's mail server: - the container log has no postconf warning, the session survives; - a domain takes the SelfPost-hosted report address; a gzip report mailed to it appears under Outbound > DMARC reports; an address nobody chose is refused at RCPT; - a report on another domain and a message with no report are accepted, dropped with "dropped: ..." on their delivery lines, counted as two parse failures, absent from the queue and from the reports; - an inbound domain with the sink as upstream and one listed recipient: mail for it reaches the sink, another recipient and another domain are refused at RCPT. The stage directory now holds docker-compose.yml and .env, as an operator's project directory does (a full backup needs them; the restore scenario that uses it is not in this commit - the panel's full backup turned out not to work, see the next one). make e2e on the test server: ok. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+35
-2
@@ -14,8 +14,41 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); version
|
||||
time. It is now accepted and discarded - no retry, and no bounce, since the
|
||||
envelope sender of such a message is whatever its author wrote. It counts
|
||||
as one parse failure and the reason is in the mail log, on the message's
|
||||
own delivery line (Server › System log, `dropped: …`). Only a failure of the database is still
|
||||
retried.
|
||||
own delivery line (Server › System log, `dropped: …`). Only a failure of
|
||||
the database is still retried.
|
||||
- DMARC reports are kept 500 **for each domain** (and 90 days), not 500 for
|
||||
the whole server - see Security.
|
||||
|
||||
### Security
|
||||
|
||||
Review of the DMARC report path (Fable, 2026-10-11), which started to run for
|
||||
the first time in 2.0.0. Nothing Critical or High.
|
||||
|
||||
- **A report is bounded before it is stored.** The XML comes from anyone who
|
||||
knows a report address, and its 8 MiB limit left room for some 160 000
|
||||
records or a single name of megabytes - rows in the database and cells of
|
||||
the report page. A report holds at most 5 000 records (a larger one is
|
||||
dropped), every text field is cut to 255 bytes, and a record's count is
|
||||
capped so the sums cannot wrap.
|
||||
- **One domain's reports cannot push out another's.** The cap of 500 was for
|
||||
the whole server, so a stranger filing reports under one domain's address
|
||||
could evict every other domain's history. It is counted per domain now.
|
||||
- The delivery command runs one at a time, not up to a hundred in parallel.
|
||||
- The reason written to the mail log for a dropped message is cut to 200
|
||||
bytes and anything outside printable ASCII is replaced: parts of it are the
|
||||
sender's own bytes (a header line, a file name inside an archive).
|
||||
- `SELFPOST_DATA_DIR` / `SELFPOST_DB_PATH` with whitespace or `$` are refused
|
||||
at start when DMARC ingest is on, instead of handing the delivery command
|
||||
another path and so an empty database of its own.
|
||||
|
||||
### Added
|
||||
|
||||
- e2e: the run now ends on port 25 with both optional features on. A DMARC
|
||||
report is mailed to a domain's hosted address and has to appear under
|
||||
Outbound › DMARC reports; a report on another domain and a message with no
|
||||
report are accepted and dropped; mail for an inbound domain reaches its
|
||||
upstream and other recipients are refused. Until now the suite only read
|
||||
back the generated configuration of these features.
|
||||
|
||||
## [2.0.0] - 2026-10-11
|
||||
|
||||
|
||||
Reference in New Issue
Block a user