docs: record Postfix-aligned DSN relay test

This commit is contained in:
Mario Fetka
2026-07-27 19:33:10 +02:00
parent da691adc43
commit 59e8af7ebf
2 changed files with 25 additions and 11 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ documentation and were not reviewed a second time:
| --- | --- |
| SMTP-07, SMTP-08, SMTP-27 | `tls.md` and the matching sections in `test-evidence/0.7-r1.md` |
| SMTP-11, SMTP-12, SMTP-13 | Matching sections in `test-evidence/0.7-r1.md` |
| SMTP-14 | Postfix DSN command generation and recipient-state handling were used for the implementation review; the Bongo live test is still open |
| SMTP-14 | `src/smtp/smtp_proto.c`: DSN parameters are xtext-encoded and emitted only with `SMTP_FEATURE_DSN`; `src/bounce/bounce_notify_util.c`: canonical `Original-Recipient` field. Bongo now applies the same peer-capability gate to direct and relayhost delivery, preserves enhanced status codes, and has passed live tests against both DSN-capable and non-DSN peers. |
| SMTP-32, SMTP-33 | `smtp.md` and the matching sections in `test-evidence/0.7-r1.md` |
## SMTP server and submission
+24 -10
View File
@@ -2665,15 +2665,18 @@ Bongo receive contract at the stronger byte-for-byte Store boundary.
Result: **PASS**
Commits `418005d7`, `5d3d230a`, and `1cc477f6` made the native SMTP
transport and libcurl relayhost transport use the same RFC 3461 formatter.
They preserve explicit `RET`, `ENVID`, `ORCPT`, and `NOTIFY` values, reject
unsafe xtext metadata, retain an upstream Enhanced Status Code, and emit the
canonical `Original-Recipient` delivery-status field. Unit coverage includes
omitted values, `RET=HDRS`, `RET=FULL`, `NOTIFY=NEVER`, all three positive
notification flags, xtext validation, and permanent/transient reply mapping.
Commits `418005d7`, `5d3d230a`, `1cc477f6`, and `da691adc` made the native
SMTP transport and libcurl relayhost transport use the same RFC 3461
formatter. They preserve explicit `RET`, `ENVID`, `ORCPT`, and `NOTIFY`
values, reject unsafe xtext metadata, retain an upstream Enhanced Status
Code, and emit the canonical `Original-Recipient` delivery-status field.
They also suppress all four DSN transport parameters when the next hop does
not advertise `DSN`, while retaining the metadata needed for Bongo's local
success or failure report. Unit coverage includes omitted values,
`RET=HDRS`, `RET=FULL`, `NOTIFY=NEVER`, all three positive notification
flags, xtext validation, and permanent/transient reply mapping.
The complete strict debug-build suite passed 99 of 99 tests in 13.18 seconds.
The complete strict debug-build suite passed 99 of 99 tests in 13.22 seconds.
The commits were pushed to `master`, installed as
`mail-mta/bongo-9999::bongo` with GCC 15.3.0, and exercised on 2026-07-27:
@@ -2692,16 +2695,27 @@ were read from the real Bongo Store: omitted DSN options retained the
standard failure/body behavior, `RET=HDRS` omitted the original body,
`RET=FULL` retained it, xtext `+2B`/`+40` values decoded correctly, and
`NOTIFY=NEVER` created no report. A relay `550 5.1.1` remained `5.1.1`
instead of degrading to generic `5.0.0`.
instead of degrading to generic `5.0.0`. A second relay deliberately omitted
the `DSN` EHLO capability: Bongo then omitted `RET`, `ENVID`, `ORCPT`, and
`NOTIFY` on the wire, but still generated the requested local success DSN.
```text
SMTP-14 PASS syntax=postfix-aligned ret=omitted-default-full/hdrs/full envid=relayed/xtext-decoded notify=omitted/success/failure/never orcpt=relayed/decoded dsn=2.0.0/5.1.1 queue-clean=yes store-clean=yes config-restored=yes
SMTP-14 PASS syntax=postfix-aligned ret=omitted-default-full/hdrs/full envid=relayed/xtext-decoded notify=omitted/success/failure/never orcpt=relayed/decoded dsn=2.0.0/5.1.1 peer-without-dsn=parameters-suppressed/local-dsn queue-clean=yes store-clean=yes config-restored=yes
```
The test deleted all marked Store objects and Queue entries, stopped its
relay fixture, restored the exact SMTP Store document, and restarted Bongo.
No message left the test host.
This behavior was compared directly with Postfix 3.11.1
`src/smtp/smtp_proto.c`. Postfix adds `RET`, `ENVID`, `ORCPT`, and `NOTIFY`
only when the session has `SMTP_FEATURE_DSN`, xtext-encodes the parameters,
and keeps the downstream Enhanced Status Code for recipient accounting.
Bongo now applies the same capability boundary and status preservation to
both direct and relayhost delivery. Postfix
`src/bounce/bounce_notify_util.c` was also used to verify the canonical
`Original-Recipient` report field.
## SMTP-20
Result: **PASS**