| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-08-18 | 6.6 kB | |
| v0.0.16 source code.tar.gz | 2026-08-18 | 6.0 MB | |
| v0.0.16 source code.zip | 2026-08-18 | 7.1 MB | |
| Totals: 3 Items | 13.1 MB | 0 | |
Security fixes
- smtpserver: reject submitted messages with multiple From headers/addresses. authenticated users could submit messages with multiple From headers, the first would be checked for permission against the account's configured addresses, but an additional From header could be present with an entirely different From header, and the last From header would be DKIM-signed by mox. (PR [#459], 5dd6ce7c2f92)
- scram: fix parsing of trailing extensions in scram messages by properly forwarding the state after parsing an extension. (#463, 86edfe7a7f9b)
- sendmail: refuse to execute anything except "sendmail" when invoked with egid != gid. If installed setgid moxsubmit (e.g. at /usr/sbin/sendmail as documentation suggests), invoking the command as regular mox command could previously reveal secrets in /etc/moxsubmit.conf, or overwrite the file. (e1ce2a5e0fbc)
New features
- Introbox, a mailbox where first-time correspondents (based on message-from address) are delivered to instead of to the Inbox. With an introbox, spam messages (including mail bombs) that make it through are still separated from regular email from known correspondents. Not enabled by default, configure in account settings. (PR [#454], 9928c0aaf488)
Improvements
- Add "Fail" email transport, that immediately fails delivery. Allows configs that prevent outgoing deliveries (globally, per domain, or per account) from/to certain domains. (#347, bb438488c50d)
- Add config option to disable rate limiting for the webserver, and take a reverse proxy into account when finding the ip to use for webserver ratelimting. (#346, f1259ee80e22)
- webmail: Add a "Flagged" button to the webmail refine bar. (#428, 82d94fcbdd5c)
- use ClientSettingsDomain for RFC6186 DNS SRV (automatic account configuration) records if set, for easier future migrations (#366, PR [#367], 39d161c9cfd7)
- webmail: automatically reload webmail within a few seconds after a server update, and restore the "compose message" state so a user doesn't notice. (200bcec294ab)
- add cli subcommand "mox config account addresses $account" for listing addresses of an account, and "mox config address account $address" for printing the account of an address. (02e1a20eb44d)
- Add config option to disable TLS client auth during TLS handshakes. To work around clients, like the gmail smtp client, that tries to authenticate with a webpki-issued certificate (which mox doesn't recognize for authentication). (#359, 833a67fe3d3e)
- webserver: for http logging, log ip from x-forwarded-for as "clientip" and allow configuring autoconfig & mtasts endpoints as being forwarded. (#369, PR [#381], 864a8e2c85ca)
Bug fixes
- imapserver: fix checks that ensured imap commands were only allowed to be executed in certain connection states. (PR [#457], 1d1a358b4102)
- imapserver: imapserver: fix bug in uid handing around the select/examine command, leading to "uid already present" error. (f38da6ea8760)
- imapserver: properly handle extra bytes after a STARTTLS command by using bytes already read, instead of trying to read the number of buffered bytes again from the connection, likely breaking the handshake. (e775a32599bc)
- smtpserver: don't try to read out of bounds of a dkim signature's short "b=" parameter, leading to connection abort (75ac24debde6)
- When registering login attempts, use X-Forwarded-For header for finding the IP address. (#338, baacdbca18e6)
- Make logging referrer of http requests work. (2e0eea88b0cd)
- Fix error "updating spam/ham count: key too large" when marking some messages as ham/spam. (#386, 24750ffc1c42)
- Don't cause internal server errors for static file requests for invalid paths, eg containing %00. (86582e386a68)
- Add mechanism to work around imap client protocol incompatibilities with a per-account setting to disable imap extensions (capabilities) for sessions of that account. (#388, 3d28c89d6322)
- webmail: when forwarding a message, use decoded headers in "forwarded message" preamble, instead of encoded values. (#382, 50229d36c1f0)
- webmail, webaccount: use autocomplete=email not type=email for input elements, to make internationalized addresses work (#332, e4ff6c9b0aad)
- webserver: don't force adding a trailing slash when forwarding. (023a40e2b130)
- webhook payload did not contain actual error message for delivery errors. (#435, 18ecfcdf7a23)
- fix setting domains to do ACME verification for when ACME provider is shared between multiple listeners. (PR [#452], dbff807ad713)
- webmail: don't intercept cmd+key browser shortcuts. (PR [#455], 87a14f7ba6f5)
- smtpserver: fix parsing of AUTH= parameter without further data in MAIL FROM account. (#462, 33c4bd8532a1)
- various small bug fixes
Update procedure
Before upgrading, do a dry-run first.
- Make a temporary backup with the old mox version:
./mox-v0.0.15 backup data/tmp/testupgrade - Verify that all is well with the old version:
./mox-v0.0.15 verifydata data/tmp/testupgrade/data - Verify the state with the new version:
./mox-v0.0.16 verifydata data/tmp/testupgrade/data
With a successful dry-run, the upgrade should go smoothly. Make a new backup
again with ./mox-v0.0.15 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 to everyone on irc/matrix/slack and the issue tracker for providing feedback, asking & answering questions and/or providing code. Much appreciated! An incomplete list:
ajaspers, allddd, asciimoo, benjojo, Emrion, FLuX, hilli, iwanofski, lupine, mattfbacon, Michiel, monowii, oasilturk, omartijn, philenotfound, vojbarzz, vooon, wheresalice, wneessen, xzeldon
If you have open bug reports/issues mentioned in this release, please verify the issue is resolved and either close the issue or write a comment. Thanks!
Special thanks to NLnet foundation for sponsoring development.
It's been a long time since the previous release. If you have time to help out, you could help answer questions on the communication channels including the issues list, or if you would like to write code look at the issues or todo's in the code. Thanks!