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

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions