Repository navigation
Releases
Releases · nitrosend/nitromta
v0.3.0
Fixed
- A drained backlog no longer refuses new mail when the store has reusable
pages. Disk admission anddoctorcount that space while reserving room
for the write-ahead log.store_reusable_bytesexposes it. - A disk too full to check the store reports that the check could not finish
instead of calling the store damaged and recommending a backup restore. - Unsigned external feedback for a message sent to several recipients no
longer suppresses or counts against any of them. An authenticated copy can
still apply its effects once; reports for one-recipient messages and a
transport's own delivery-scoped reports keep their existing behaviour. - Outbound SMTP negotiates 8BITMIME. A receiver without it still takes 7-bit
mail; 8-bit content fails locally before MAIL, without suppressing an
address or counting the failure as the receiver's reputation signal. - Release builds require the Rust gate and the official SDK matrix to pass
at the release tag. The README capture example includes identity setup,
credentials and certificate trust. - Container releases publish the
latesttag as well as the version tag,
so the unversioned image reference resolves to the current release.
Added
[receivers.<Provider>.warmup] promote = falseholds automatic cap increases
for that provider while keeping automatic reductions. The hold is visible
innitromta list; other providers continue warming independently.
v0.2.2
Added
- Complaint reports that have lost their return path now find their message.
Each message goes out with its return path token in anX-NitroMTA-Report
header as well, outside its signature. Microsoft's reports carry no return
path and no recipient, so this reaches a message with one recipient. reports_unmatched_total, the reports about none of the engine's deliveries.- A page on deliverability: how warmup works, how provider settings layer, what
each provider reports back, and how to configure warmup for any provider.
Changed
- The rules shipped in
rules/receivers.tomlgiveOutlookwarmup defaults:
half the shared ladder's pace to 10,000 a day, and a deferral holding a cap
from 0.5%.[receivers.Outlook.warmup]overrides them, as any provider's
settings can be configured. An egress already warming moves to them at its
next judgment.
Fixed
put_egressno longer changes a cap warmup is using. Run again, a line naming
no cap removed the egress's own cap, and a line naming one set it back. It can
still start warmup on an egress with no cap, andput_capchanges a cap after
that.nitromta doctorno longer says to ask the provider about port 25 when this
host does not hold an egress's address.
v0.2.1
Fixed
- The
.deb,.rpmand AUR packages depend onca-certificates. On a
host without them, such as a bare container image, the engine could not
build its resolver and did not start.
v0.2.0
Changed
- DANE takes DNSSEC's verdict from the resolver on this host, as Postfix
does. Delivery's lookups ask that resolver whether it validated each
answer (the AD bit), so it must validate DNSSEC itself, and the engine no
longer does. Through a resolver elsewhere, or one that does not
validate, such as Docker's or most routers', mail goes as it would
without DANE, anddoctorand the log say DANE is not in effect; until
now every lookup failed and the mail waited until[delivery] dane = falsewas set. Mail to zones the engine's own validation wrongly called
bogus, such as an unsigned zone with no NS records at its apex, is
delivered. /health/dispatchno longer answers 503 while the resolver does not
validate DNSSEC, as the mail goes on without DANE.
Removed
[delivery] trust_anchor. The resolver's own trust anchor is the one
that counts: delete the line from your configuration before upgrading, or
the engine will not start.
v0.1.6
Fixed
- Mail submitted over SMTP, or as raw content through the SES API, is given
theDateandMessage-IDfields it lacks before it is signed, as SES
gives them, itsMessage-IDnaming the ID its acceptance gives. It went
without them, and Gmail refuses mail with noMessage-ID. nitromta <command> --helpprints that command's forms, where it answered
that--helpis not an option of the command, andnitromta run --help
no longer asks for--config.[delivery] port, the port receivers are reached on, is documented, and
nitromta setupwrites it commented out with its default.
v0.1.5
Added
- Reference pages: the command line and the
configurationnitromta setupwrites,
each checked against the binary by a test, and the guides at
nitromta.com/docs. - Raw benchmark results: the published session as the harness wrote it,
indocs/results.
Fixed
nitromta --helpprints every command and its options, where it answered
that--helpneeds a value.nitromta doctor's warning for an identity whose return path is outside
its domain ended mid-sentence.- The
.deband.rpmpackages create the engine's user on a host without
systemd, such as a container.
v0.1.4
Added
- Packages: each release publishes
.deband.rpmpackages for
x86_64 and arm64, which install the binary, the systemd unit and the
engine's system user;nitromta-binon the AUR; and macOS binaries for
Apple silicon and Intel, for capture mode. - Homebrew:
brew install nitrosend/tap/nitromta, on macOS and Linux.
v0.1.3
Added
- Benchmarks: NitroMTA, KumoMTA and Postfix measured by the harness on
an AWS c7gd.metal server, each committing every message to disk before
accepting it: 3,313, 1,048 and 806 messages a second
(benchmarks).
v0.1.2
Added
- The benchmark harness:
cargo harnessbuilds NitroMTA, KumoMTA, and
Postfix with OpenDKIM from source and measures each on the same machine
under the same rules. Its profiles cover throttled and distant receivers,
the backlog, the SES API, and crash recovery, including killing the
process under load.
v0.1.1
Added
- The SDK matrix:
cargo xtask sdkruns the official SES v2 SDKs
against the engine, each pinned by its lockfile:@aws-sdk/client-sesv2
and Nodemailer's SES transport in JavaScript,boto3and django-ses in
Python, andaws-sdk-sesv2in Ruby. - Migrating from SES: a guide to moving an application, its domains,
events, suppression list and templates from Amazon SES.