chatmail / chatmail/core

Remove is_chatmail and dependency on `XCHATMAIL` and `XDELTAPUSH` IMAP capabilities

Open
#8,448 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
929
Forks
143
Avg merge
1d 20h
Merged PRs (30d)
53

Description

This issue servers as meta issue, and will/can be edited accordingly.

- [x] base SMTP recipient chunking on relay IMAP maxsmtprecipients metadata, see https://github.com/chatmail/core/pull/8426

- [x] Make a full scan through android, iOS and desktop code base for is_chatmail usage and determine replacement conditions

- [ ] Push notifications (`XDELTAPUSH`): Replace `can_push()` with `can_metadata()` check and try performing `SETMETADATA /private/devicetoken`.
- ~Open question: What to do with Android's chatmail-conditional "do you want to enable permanent notifications" issue?~ (link2xt: as far as i understand from the comment below and looking at the code in https://github.com/deltachat/deltachat-android/pull/4549, Android simply assumes that if the user has FCM, then there is no need to ask for permanent notification even if some profiles are non-chatmail - that's fine, expert users who configure non-chatmail can also go to settings and enable permanent notification or don't really need instant notifications).

- [ ] Server-side deletion (`XCHATMAIL`): Collapse deletion logic in [`src/ephemeral.rs`](https://github.com/chatmail/core/blob/main/src/ephemeral.rs) to depend on `!bcc_self` alone (deleting downloaded messages on single-device setups regardless of server type). EDIT link2xt: maybe also depend on force_encryption, if it is off then we don't want to delete plaintext mails.

- [ ] Cleanup & Relay config: Remove `is_chatmail` from initial stats and info strings and whatever is left.

Contributor guide

Open the contributing guide

Research direction

Start with src/ephemeral.rs and review the existing can_push() and can_metadata() checks described in the checklist. Then inspect the remaining is_chatmail references and initial stats or info strings across the core code. Done means the push-notification, server-side deletion, and relay cleanup items are completed without the XCHATMAIL or XDELTAPUSH dependencies.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, networking
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.