Skip to content

Send MDNs to self #7005

@link2xt

Description

@link2xt

We currently synchronize "seen" status of messages by setting \Seen flag on IMAP and then looking for new \Seen flags using CONDSTORE IMAP extension. This approach has multiple disadvantages:

  • It requires that the server supports CONDSTORE extension. For example Maddy does not support CONDSTORE yet: Feature request: Quotas and CONDSTORE for Delta Chat foxcpp/maddy#727
  • It leaks the seen status to the server without any encryption.
  • It requires more than just store-and-forward queues and prevents replacing IMAP with simpler protocols like POP3 or UUCP or some HTTP-based API for queue polling.

A simpler approach would be to send MDNs to self when bcc_self (aka multidevice) config is enabled, regardless of whether the message requested and MDN. If MDN was requested and we have MDNs enabled, then also send to the message sender, but MDN to self should be sent regardless of whether read receipts are actually enabled.

sync_seen_flags and CONDSTORE check is better completely removed, maybe after one release. store_seen_flags_on_imap can be kept for unencrypted non-chat messages if it's not much code.

One potential problem with sending MDNs is that it may trigger ratelimits on some providers and count as another recipient. We cannot upload MDNs over IMAP like sync messages because we usually need to send MDN to the original sender as well.

Metadata

Metadata

Assignees

No one assigned

    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