This release makes Fastmail work over JMAP, brings contacts and calendars to JMAP accounts, fixes deleting mail on servers that keep folders under "INBOX.", shows how much space each account takes, and cleans up data that Gofer used to leave on disk. JMAP accounts are still experimental and need GOFER_JMAP_EXPERIMENT=true.
JMAP and Fastmail
- Fastmail accounts can now be added. Fastmail refuses passwords and only accepts an API token, so adding the account always failed with "rejected the username or password". Paste the token in the "Password or API token" field. (#34)
- Contacts sync from JMAP accounts, and adding, editing or deleting a contact in Gofer updates the server. Fields Gofer doesn't show are kept as they are. Photos and contact groups aren't supported yet. (#36)
- Calendars work over JMAP: reading events, creating, editing and deleting them (including single occurrences), meetings, invitations and replies. Fastmail doesn't offer JMAP calendars yet. (#38)
- In the contacts and calendar steps, a JMAP account whose server supports it can choose JMAP or stay on CardDAV/CalDAV.
- Gofer warns when a JMAP login can read mail but not send it, such as an API token without the sending permission.
- Fastmail's internal keywords are no longer shown as labels.
Deleting mail on servers with folders under "INBOX." (#31)
- Servers such as Dovecot that keep every folder under "INBOX." now have their Trash, Sent, Drafts and Spam recognized. Before, deleting a message failed silently and the folders showed as "INBOX.Trash" inside the inbox.
- A delete that can't find a Trash folder now says so instead of quietly putting the message back. Bulk deletes say how many messages they skipped.
Account size (#21)
- Each account card in Settings shows how much the account takes on the mail server and on this device.
- Mailbox size in the sidebar's right-click menu opens a breakdown by folder, largest first.
Storage cleanup (#35)
- Personal and open installs now remove the files of deleted messages. Before, only managed installs did, and those files stayed on disk for good.
- Re-syncing a message that starts a conversation no longer creates a new empty thread each time. Empty threads already left behind are removed over time.
- Messages left in no folder, and folder records marked deleted more than 30 days ago, are removed.
- Avatar lookup logs are kept for 30 days.
Fixes
- IMAP sync no longer duplicates sent messages.
- Saving a meeting on a CalDAV calendar no longer drops its guests until the next sync.
- Sent calendar invitations now show in the delivery panel.
Upgrade notes
- ⚠️ This release upgrades the database (schema 127). You can't go back to an older release afterwards, so back up your data directory first.
- The cleanup runs with the regular retention pass, every 6 hours. On large installs it goes through old leftovers in batches over a few days. The database file only shrinks after a
VACUUM.
Gofer remains pre-1.0. I'm actively using and improving it, but please keep backups and test your setup before relying on it for anything critical.