v0.0.6
版本发布时间: 2023-08-16 23:24:40
mjl-/mox最新发布版本:v0.0.11(2024-05-01 03:38:14)
Update instructions:
Make a backup, replace the binary and restart.
After the upgrade, the first time an account is opened with this new version, new message indexes are created and mailbox message count statistics are calculated. For large mailboxes, the time and memory this takes can be noticable. The upgrade tests take about 15 seconds on 570k messages on a thinkpad x1 from 2018, and run with a max memory data size of 768MB.
Don't forget to make a backup of the data directory with your currently running mox before upgrading (e.g. "mox-v0.0.5 backup data/tmp/backup"). You can dry-run the upgrade by making a separate backup ("mox-v0.0.5 backup data/tmp/testupgrade") and running the "verifydata" command with the new mox version ("mox-v0.0.6 verifydata data/tmp/testupgrade"). Running "verifydata" with a newer mox will make changes to the database files, so don't run it on a backup you may need to restore.
It is recommended to run the new "mox reparse" command after upgrading. It will reparse all messages with the improved message parsing code.
For existing installations, the new webmail must be enabled manually in mox.conf with config options "WebmailHTTP" and/or "WebmailHTTPS", similar to "AccountHTTP(s)". See the example config printed by "mox config describe-static".
If you are forwarding email to an address hosted with mox, you may want to configure the new "IsForward" and possibly "AcceptRejectsToMailbox" options in a delivery ruleset for better junk handling/analysis.
If your mox is behind a NAT, and your mox.conf uses config option IPsNATed, you should switch to new config option NATIPs, and specify the public IPs that are NATed.
New features:
- Webmail, for reading/writing messages. It is similar to other regular and webmail clients, with a decent set of features for a first version (with more to come in the future). Webmail is enabled for new installs created with the quickstart. For more details about the implementation, see https://github.com/mjl-/mox/commit/849b4ec9e9f9bf7cdd2862de9e2a2dd096858d5c.
- IMAP extensions CONDSTORE and QRESYNC have been implemented. With CONDSTORE, changes to messages are tracked with a modification sequence, "modseq". This is used by mail clients both to efficiently find changes when reconnecting, and for conditionally storing updated message flags (only if modseq is still as expected). QRESYNC is an additional extension for faster full mailbox synchronization. These are useful by themselves, but keeping track of the "modseq" will also help with JMAP.
Improvements:
- Faster IMAP "STATUS" command (which checks mailbox status), because mox now keeps track of total/unseen/deleted number of messages in mailboxes. Noticable in larger mailbox (>50k messages).
- Be less strict by default when parsing messages, and handle non-ascii/utf-8 encodings in message subjects. We already accepted messages with problems, but stored them mostly unparsed. IMAP clients would parse the message themselves so users wouldn't notice anything, but now that we have webmail it is more important to have parsed forms of messages for problematic messages.
- Properly decode character encodings other than ASCII and UTF-8 when returning/searching text in messages.
- Be more lenient for (authenticated) submission of email over SMTP (but not during regular SMTP delivery). Before, we were strict about certain protocol violations, but that wasn't helpful behaviour for legitimate users. In pedantic mode, mox still rejects these violating commands.
- New config options "AcceptRejectsToMailbox" and "IsForward" in Rulesets, for handling incoming messages that are forwards from another address. By setting "AcceptRejectsToMailbox", if the junk analysis says a message is junk, the message is accepted during SMTP instead of rejected, but delivered to the configured mailbox. It isn't always a good idea to reject forwarded messages that are junk. By setting "IsForward", the junk analysis and future classification based on such a message is done differently. See the config option for details. (PR #50 by bobobo1618)
- Add a KeepRejects options to account configurations, so the Rejects mailbox isn't automatically cleaned up. (PR #49 by bobobo1618)
- Add option NATIPs to a listener in mox.conf for better handling when mox is configured behind a NAT.
- "mox verifydata" now checks for more potential issues, and mox gained a few subcommands to fix those issues.
Bug fixes:
- Fix showing the progress while importing messages. Messages were still imported, but the SSE connection with progress updates was broken.
- Fix potential delays in propagating changes to IMAP IDLE connections.
- IMAP compliance: add missing space after continuation line ("+").
- IMAP compliance: add missing empty untagged response for SEARCH in case of no matches.
- Fix the -existing-webserver flag for "mox quickstart". Its TLS key/cert check tripped it up.
- And many more small fixes and improvements.
Special thanks for contributions and/or feedback from: Mendel, bobobo1618, hmfaysal, x8x, kikoreis, gerben, andrii, liesbeth, morki, gedw99 and everyone I forgot. More feedback/bug reports welcome!
To download, see https://github.com/mjl-/mox#download