github mjl-/mox v0.0.10

latest release: v0.0.11
2 months ago

New features

  • Implement SMTP "FUTURERELEASE" extension in SMTP server. For submitting a
    message for delivery from the queue at a time in the future, e.g. tomorrow
    morning 9:00. (93c52b0)
  • Delivery from the queue to multiple recipients in a single SMTP transaction,
    transferring data only once. This is only done for recipients with the same
    recipient domain. The maximum recipients limit from the RFC 9422 SMTP LIMITS is
    honored and mox now announces its own limit. (47ebfa8)
  • Allow configuring DNS blocklists (DNSBLs) only for monitoring, without using
    them for incoming email. Previously, mox would only monitor DNSBLs that are
    used for incoming connections. But it is useful to know if your IPs are on a
    blocklist, unrelated to whether you're using the blocklist. (15e450d)

Improvements

  • Mox has a separate website now, https://www.xmox.nl. It should be more
    friendly for first-time visitors than the github page. It also has an initial
    video, with more to come. Content, except images/videos, is in the mox git
    repository, so functionality and documentation can be changed together.
    (0bc3072)
  • Fix interpreting a per-account negative total size quota as "no limit",
    overriding the global/default setting. (issue #115 by pmarini-nc)
  • Webmail: When Q/B-word-decoding attachment filenames, recognize more
    character set encodings. (issue #113 by jsfan3)
  • Webmail: show unicode for internationalized email addresses by default. Not
    the xn-- names, which are not user-friendly. A hover still shows the xn--
    names. After talking to arnt at FOSDEM.
  • Localparts of addresses are now normalized to Unicode NFC throughout mox,
    including for incoming deliveries. Previously, incoming SMTPUTF8 deliveries
    with non-NFC-normalized unicode localparts (e.g. with separate code points for
    accents and such (NFD)) would not be accepted. (8e6fe74)
  • The PRECIS (RFC 8265) password profile is now applied when setting/using
    passwords. It prevents confusing users who use unusual unicode whitespace
    codepoints in their passwords. (c57aeac)
  • Webmail: Implement registering "mailto:" links. Click the new button in the
    Help popup to register. From Hans-Jörg. (ee1db2d)
  • In DSNs, show the full (multiline) SMTP response, not just the first line. It
    often has helpful details. (50c1396)
  • More DSN improvements: put the full SMTP reply in field Diagnostic-Code
    (1c934f0), when delivering a local DSN add Delivered-To header
    (79da4fa), when parsing an incoming DSN set the Action field (e.g. failed,
    delayed) (f6497b1), match DSN to threads based on Referenced/In-Reply-To
    only, not subject (13923e4).
  • In quickstart and self-check, improve the check whether resolver verifies
    DSNSEC. We were looking up NS on ".", but some DNSSEC-verifying resolvers
    respond to that with unauthentic data. (issue #139 by triatic)
  • More helpful instructions about setting up a DNSSEC-verifying resolver, and
    how to test it. (issue #131 by romner-set)
  • Relevant for reusable components: the "slog" package from golang.org/x/exp is
    now replaced with slog from the standard library. Function signatures have
    changed. (d1b87cd)

Bug fixes

  • smtpserver: Spurious \r were sometimes injected when fixing up crlf line
    endings for incoming messages. The check could look at wrong a buffer,
    seemingly randomly incorrectly concluding a \r was missing before a \n.
    Messages with the extra \r added shouldn't cause any trouble.
    You can find these messages with grep -rn $'\r\r$' data/accounts/$youraccount/msg/,
    remove one \r manually and run mox fixmsgsize $youraccount to
    reparse the message. (issue #117, by haraldrudell)
  • Deliveries could seemingly randomly but consistencly fail with an incorrect
    diagnostic about the message containing a bare newline. It would happy due to
    crlf handling around buffer starts/ends. (issue #129 by x8x)
  • When adding a message to the queue for delivery, set the correct local
    account, so DSNs about delivery failures go to the correct user, not the
    postmaster account. (dc83ad1)
  • imapserver: In a sequence/uid pattern, the "*" would in some cases be interpreted
    as the first message, but it should always be the last message in a mailbox.
    (14aa854).
  • Fix displaying DMARC reports with empty values for some fields. The
    TypeScript checks would reject them for being invalid enums, empty strings
    are now part of the enum. (20812dc)
  • In outgoing TLS reports, always use DNS ASCII A-labels, not unicode U-labels.
    (62be829)
  • For domains configured only for TLS/DMARC reporting, don't reject messages to
    that domain during submission, but deliver them as normal. (1d9e80f)
  • smtpclient: Treat server's size limit of SIZE=0 as "no limit", instead of
    failing to deliver. (39bfa43)
  • Accept TLS reports that reference multiple domains, and that mix reports
    about hosts and recipient domains. (e0c36ed)
  • Admin: Prevent writing out an invalid domains.conf that cannot be parsed
    again. Happened when the last address of an account was removed through the
    admin web interface. (issue #133 by ally9335)
  • Webmail: sending to invalid addresses could result in (failing) attempts to an
    empty address instead of returning an error message to the user. (63cef8e)

Update instructions

Before upgrading, do a dry-run first.

  • Make a temporary backup with the old mox version:
    mox-v0.0.9 backup data/tmp/testupgrade
  • Verify that all is well with the old version:
    mox-v0.0.9 verifydata data/tmp/testupgrade
  • Verify the state with the new version:
    mox-v0.0.10 verifydata data/tmp/testupgrade

With a successful dry-run, the upgrade should go smoothly. Make a new backup
with mox-v0.0.9 backup data/tmp/backup (the previous backup was modified by
the dry-run, so couldn't be used to restore!), replace the binary and restart.
For further details, see
https://www.xmox.nl/faq/#hdr-how-do-i-upgrade-my-mox-installation

If you run into any problems, please create a bug report.

Thanks

Thanks for contributions and/or feedback from: haraldrudell, x8x, romner-set,
triatic, mteege, Hans-Jörg, arnt, jsfan3, pmarini-nc, ArnoSen, andreasheil,
theduke, daluntw, lmeunier, ally9335, p-rintz, daftaupe (and everyone at the
FOSDEM email devroom, and all those I missed).

Feedback, feature requests, bug reports, contributions (start small!) are all
welcome. An easy way to help mox is to use it and spread the word!

Development on mox is funded through the NLnet NGI0 Entrust Fund,
https://nlnet.nl/entrust/, with financial support from the European
Commission's Next Generation Internet programme.

Download or compiling

See https://www.xmox.nl/install/#hdr-download.

Don't miss a new mox release

NewReleases is sending notifications on new releases.