Skip to content

Releases

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Nov 11:49
v0.3.0
d18fd56

Fixed

  • A drained backlog no longer refuses new mail when the store has reusable
    pages. Disk admission and doctor count that space while reserving room
    for the write-ahead log. store_reusable_bytes exposes 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 latest tag as well as the version tag,
    so the unversioned image reference resolves to the current release.

Added

  • [receivers.<Provider>.warmup] promote = false holds automatic cap increases
    for that provider while keeping automatic reductions. The hold is visible
    in nitromta list; other providers continue warming independently.

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 05 Nov 23:13
5772fa6

Added

  • Complaint reports that have lost their return path now find their message.
    Each message goes out with its return path token in an X-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.toml give Outlook warmup 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_egress no 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, and put_cap changes a cap after
    that.
  • nitromta doctor no longer says to ask the provider about port 25 when this
    host does not hold an egress's address.

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 04 Nov 04:16
73e3bb5

Fixed

  • The .deb, .rpm and AUR packages depend on ca-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

Choose a tag to compare

@github-actions github-actions released this 04 Nov 02:00
750cfe9

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, and doctor and the log say DANE is not in effect; until
    now every lookup failed and the mail waited until [delivery] dane = false was 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/dispatch no 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

Choose a tag to compare

@github-actions github-actions released this 03 Nov 03:54
89f7bb9

Fixed

  • Mail submitted over SMTP, or as raw content through the SES API, is given
    the Date and Message-ID fields it lacks before it is signed, as SES
    gives them, its Message-ID naming the ID its acceptance gives. It went
    without them, and Gmail refuses mail with no Message-ID.
  • nitromta <command> --help prints that command's forms, where it answered
    that --help is not an option of the command, and nitromta run --help
    no longer asks for --config.
  • [delivery] port, the port receivers are reached on, is documented, and
    nitromta setup writes it commented out with its default.

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 02 Nov 13:37
48a9516

Added

  • Reference pages: the command line and the
    configuration nitromta setup writes,
    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,
    in docs/results.

Fixed

  • nitromta --help prints every command and its options, where it answered
    that --help needs a value.
  • nitromta doctor's warning for an identity whose return path is outside
    its domain ended mid-sentence.
  • The .deb and .rpm packages create the engine's user on a host without
    systemd, such as a container.

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 02 Nov 08:37
79cb8d0

Added

  • Packages: each release publishes .deb and .rpm packages for
    x86_64 and arm64, which install the binary, the systemd unit and the
    engine's system user; nitromta-bin on 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

Choose a tag to compare

@github-actions github-actions released this 02 Nov 08:11
d91ec28

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

Choose a tag to compare

@github-actions github-actions released this 02 Nov 08:12
906fcd5

Added

  • The benchmark harness: cargo harness builds 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

Choose a tag to compare

@github-actions github-actions released this 02 Nov 08:12
de81211

Added

  • The SDK matrix: cargo xtask sdk runs the official SES v2 SDKs
    against the engine, each pinned by its lockfile: @aws-sdk/client-sesv2
    and Nodemailer's SES transport in JavaScript, boto3 and django-ses in
    Python, and aws-sdk-sesv2 in Ruby.
  • Migrating from SES: a guide to moving an application, its domains,
    events, suppression list and templates from Amazon SES.