Skip to content

Remove mvbox_move and only_fetch_mvbox options #7648

@link2xt

Description

@link2xt

These two options are "legacy options" that exist to support "shared mailbox" usage similar to "show_emails" (#7631).

We currently have no plan on how we want to remove these options. We need a migration plan for two cases: mvbox_move=1, only_fetch_mvbox=0 and only_fetch_mvbox=1.

In case of mvbox_move=1 and only_fetch_mvbox=0 we can probably add a device message warning about the upcoming change and then turn off the option. If by this time we already solve #7631 somehow, then the user can solve the problem of cluttered inbox by adding a second relay and migrating there.

For only_fetch_mvbox=1 it is a bit more complicated as it is used to support the "alias" usecase, see here: https://support.delta.chat/t/it-may-be-unobvious-that-the-deltachat-folder-use-case-is-going-away/4495
If we want to support this for servers where user has access to configuring an alias and adding a sieve filter that moves messages with Delivered-To set to this alias to a separate folder, we can make a per-transport option "folder" and just run the inbox loop on this folder.
I am looking at the current implementation of only_fetch_mvbox and it seems to be very hacky: we still maintain connection to the inbox, but then should_ignore_folder returns false for the inbox and it is ignored.

Rough plan:

  1. Add device message for users with mvbox_move=1 and only_fetch_mvbox=0 that the option is deprecated. Not as a migration, just somewhere after opening the database or in housekeeping or so.
  2. Maybe one release later: turn mvbox_move=0 off and remove all the code that allows running multiple IMAP connections. Instead run a single IMAP loop, either on the Inbox or on "DeltaChat" folder if only_fetch_mvbox=1 is on. At this point users still cannot add second relay if only_fetch_mvbox=1 is on.
  3. Turn only_fetch_mvbox into a "folder" option in the advanced settings of the relay. Maybe make it unchangable in the UI so users cannot configure new relays in such a way, but code-wise it is probably not a big deal to support.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions