Repository navigation
v0.5.0
Newsgroup posting, on the same binary
protocol: nntp with newsgroups posts one article over implicit TLS (NNTPS, 563) or STARTTLS on the news port (RFC 4642, 119), authenticating with AUTHINFO USER/PASS. Transport selection is fail-closed and unchanged in shape from the SMTP path: a server that does not advertise the upgrade is refused before any credential is written.
Refusals name their own reason, including the two 4xx codes that are not retries — 440 at POST and 441 at the article, where a class-only rule would have advised a retry and duplicated the post. Malformed newsgroups and CR/LF in a header-bound value are refused before the socket is opened. The body is dot-stuffed on the wire and a Message-ID is generated per run.
The NNTP session is a second proven contract — spec/Nntp/ (6 rows implicit, 8 with STARTTLS, plus the Newsgroups grammar and newsgroupsNoInjection) — emitted into the same src/generated/smtp_fsm.zig, so the existing drift gate covers it. The SMTP section of that file is unchanged.
The Marketplace listing can finally be published
The publish form refuses a description of 125 characters or more (measured on the parsed value, so a folded scalar does not hide it) and reads action.yml from the release tag — which is why this ships as a tag rather than a commit on main. The description is now 110 characters with STARTTLS and 365 in it; the full text lives in the README, which the listing page renders. scripts/check-action.sh and the action-metadata job keep the limit from regressing, with a selftest proving 125 is refused and 124 accepted.
server_port now defaults to empty, meaning the port the protocol and transport imply: SMTP 465/587/25, NNTP 563/119.
Provenance
CI rebuilt both static musl binaries from this tag and verified they hash to exactly the SHA-256 pins inside this tag's action.yml before publishing. SHA256SUMS is attached:
2683da8f619dd5f310c9f6884da39e825c807c2c86a6319c19aba39b27f9c5c9 smtp-notify-x86_64-linux-musl
a58138308fb9832e1ceb551a12f1b04e591dc38ba5fd336c9acfb3f263161f29 smtp-notify-aarch64-linux-musl
See CHANGELOG.adoc for the full entry, and KNOWN-DEFECTS.adoc for what is not proven — notably D-015: no real news server has ever seen this code; the end-to-end evidence is a containerised fixture.