v0.0.6
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
849b4ec. - 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