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 withgrep -rn $'\r\r$' data/accounts/$youraccount/msg/
,
remove one \r manually and runmox 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.