github cristianadrielbraun/gofer v0.20.0

3 hours ago

This release adds Local folders for keeping mail on the Gofer server, calendar import and export, rules that cover chosen accounts and move mail between them, and improvements to selecting and reading mail. It also fixes installing Gofer as an app on Android and several calendar sync problems.

Local folders (#60)

  • Every user gets Local folders, starting with Archive and Trash, for mail kept only on the Gofer server, apart from any mail provider.
  • Mail can be copied or moved into them from the message list or Settings transfers, or imported from mbox, eml and ZIP files. Messages keep their bodies, attachments, recipients and read and starred state, and can be moved back to a mail account the same way.
  • Moving mail between accounts now offers Move, Move and delete permanently, and Copy. Move puts the originals in their account's Trash after their copies are saved; Move and delete permanently removes them for good. Moving into Local folders starts with the latter, to free space on the mail server.
  • Folders can be created, renamed, nested, put in Trash, restored and deleted. Mail deleted from Local folders' Trash is deleted permanently.
  • Local folders have their own card in Accounts, with a color, a place in the account order and an Enabled switch. Turning them off hides them from the sidebar, unified folders, move destinations and searches across all accounts, keeping their mail. Include Local folders can still bring them into a search while they are off.
  • While enabled, Local folders can be left out of each unified folder, just like a connected account.

Mail rules

  • A rule can cover all accounts or several chosen accounts, instead of just one. Existing rules keep the account they had.
  • Move to folder can now name a folder in any account, including Local folders. A move to another account copies the message first, then puts the original in its account's Trash or deletes it permanently, as the rule chooses.
  • These moves work for new mail and Run now, and appear as transfers under Export and import.
  • Deleting an account takes it out of its rules instead of deleting them. A rule left with no chosen accounts does nothing and says so in the list.

Mail list and reader (#71)

  • Unread table rows show their text in bold in the accent color, with an unread dot by the date. Selected rows have clearer borders, and Minimal gives unread rows a distinct background too.
  • Holding the mouse button on a row, Ctrl/Cmd/Shift+click, or select-all starts selection mode on desktop, showing a checkbox on each row. Escape, Clear or deselecting the last row ends it.
  • Messages inside an expanded thread have their own checkboxes. Picking only some shows a mixed checkbox on the thread's row.
  • With No reading pane, Open email with a single click can now be turned on under Email's Pane layout in Settings. Ctrl, Shift and long press still select.
  • A single message's sender, recipients and subject stay above its scrolling body. A back-to-the-top button appears when you scroll down; in a thread it goes to the start of the message being read, then the ones before it.
  • The search field suggests commands as you type, matching their start or their value: un finds is:unread. It also suggests values for filetype: and account:. Arrow keys choose a suggestion, Tab or Enter inserts it, and Enter with none chosen runs the search.

Calendar import and export (#70)

  • The menu beside New event has Import events… and Export calendar…, and each synced calendar's menu offers the same actions. They work with Google, Microsoft, CalDAV and JMAP calendars; read-only calendars offer export only.
  • Import adds an .ics file's events to an existing calendar or a new one, named from the file's calendar name or file name. It shows progress while adding them, then counts the events added, those already there and those the calendar couldn't take, with the first reason for a failure.
  • Events already in the calendar are skipped by their UID instead of duplicated or overwritten. Events without one get a UID made from their contents, so importing the same file again skips them too. Existing events aren't changed or removed.
  • Imports send no invitations. Google keeps the meeting's organizer and guests; Microsoft puts them in the description instead of adding guests it would invite, leaving out their old answers.
  • Repeating events keep their changed and deleted dates where the provider supports them. Microsoft imports extra dates as separate events and skips repeat rules it has no pattern for.
  • Google keeps up to five reminders from an imported event, and Microsoft keeps one, the earliest. An event without alarms uses the calendar's default. Exports include reminders too.
  • Export downloads a calendar's events, including repeating series and their changed and deleted dates, as one .ics file.
  • A new calendar on a Google or Microsoft account that needs to be reconnected first is greyed out with the reason, instead of failing after the file is sent.

Fixes and polish

  • Android browsers can install Gofer as an app instead of only adding a shortcut. The app has PNG and maskable icons and registers its service worker without needing push notifications turned on; notifications still need their own opt-in. (#68)
  • Turning translation off hides its button on mobile too. (#69)
  • All-day CalDAV events whose end is the same date as their start, including a zero duration, are read as one-day events instead of stopping the calendar's sync. (#72)
  • CalDAV series with individually changed dates are expanded from the stored event, avoiding duplicate or moved dates that could stop sync on Stalwart.
  • The star, labels and spam buttons show in the mail toolbar again instead of being measured as having no width.
  • Expanding or collapsing a thread no longer changes the open message. Opening a thread shows a loading view shaped like the conversation, instead of a single-message frame that jumps when it arrives.
  • Message changes fade into the reading pane, and mail cards have more space between rows with their header fields centered. Animations respect reduced motion.
  • Selected table rows no longer flash a light border in dark themes. Minimal's selected border follows its text color, including custom colors.
  • Active filter pills no longer lose their bottom border at some zoom levels. Multiple-choice pills stay on one line and give way to a count when they don't fit, including rule accounts and contacts' save fields.
  • The Move dialog makes its hovered folder clearer in Classic and Minimal. Search's Where to menu names Local folders, stays open while choosing folders, and keeps Leave out Spam and Trash in view.

Upgrade notes

  • ⚠️ This release upgrades the database (schema 135). You can't go back to an older release afterwards, so back up your data directory first.
  • Local folders are added when each user next opens their mail and are enabled by default. Their messages live only on this Gofer server; include them in your backups or export them from Export and import.
  • Importing into a new Google or Microsoft calendar needs permission to create calendars. Reconnect an account if the import dialog asks for it; existing calendar imports use the account's write access.
  • Calendar imports accept files up to 10 MB and 5,000 events, with a repeating series counted as one. Provider limits still apply, including Microsoft's supported repeat patterns and reminder limits.

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.

Don't miss a new gofer release

NewReleases is sending notifications on new releases.