Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • UnifiedPush for IMAP UnifiedPush for IMAP
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Packages & Registries
    • Packages & Registries
    • Infrastructure Registry
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • UnifiedPush for IMAP
  • UnifiedPush for IMAPUnifiedPush for IMAP
  • Wiki
  • Home

Last edited by Julian Foad Nov 29, 2024
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Home

UnifiedPush for email via IMAP WebPush

Project Summary

Referring to a draft specification for "IMAP WebPush Extension":

  1. implement IMAP WebPush Extension for one IMAP server (TBC);
  2. implement UnifiedPush support through IMAP-WebPush in one mobile IMAP client app (DeltaChat-android);
  3. submit these implementations upstream for review, asking what further work would be needed to make them technically acceptable;
  4. feed back any insights from the implementation to improve the draft spec.

Outputs:

  1. proof-of-concept implementations (server side, client side);
  2. demonstration that the client receives IMAP push notifications over UnifiedPush and does not need an IMAP-IDLE connection;
  3. know what further work would be needed to make the implementations technically acceptable upstream;
  4. possibly improved draft spec.

Rationale

UnifiedPush frees people from dependence on Big Tech's services for their push notifications, giving a choice of push service provider. Adoption in the freedom-software mobile ecosystem is constrained by the common chicken-and-egg problem: app developers wait for support by their OS and service provider (even though power users don't need it 1); OS and service providers wait for apps. Any progress to break the circle is helpful.

Email is one of the more important and more difficult apps to target. The IMAP-IDLE technique is usually used. Only a few email servers and clients implement the newer JMAP which supports WebPush and so also UnifiedPush. Adding WebPush or UnifiedPush support to any IMAP email client is therefore high effort (implementing JMAP) and low reward (few servers support it) for app developers, and similarly for server developers.

If IMAP servers would be able to support WebPush, and so also UnifiedPush, then it would be easier to add that support into the existing IMAP email clients, and it would be easier for IMAP servers to provide that support.

Risks

Many email servers, probably most, are unlikely to adopt a new extension, in the short term. The email server landscape is wide, deeply rooted, conservative, and dominated by proprietary services, even if using some open source software. However, there are some classes of servers that most likely would, mostly in freedom-software.

Even a modest increase in server support might be expected to enable a more than proportionate increase in client support.

References

  • UnifiedPush -- source
  • COI: IMAP WebPush Extension v1.0 draft spec (archived), proposal to align with JMAP RFC8620
  • JMAP PushSubscription standard
  • DeltaChat standards ("Push: IMAP IDLE")
  • WebPush standard (MDN)
  • Email UnifiedPush proxy #19 (U-P wish list)
  • Prominent email apps:
    • lttrs-android supports U-P via JMAP WebPush
    • DeltaChat -- source -- other clients
    • K9-mail -- source -- closed issues -- JMAP request -- wishlist (this is not on it)

  1. A "power user" on a freedom software OS need not wait for UnifiedPush provision, as they can install a UnifiedPush distributor, grant it sufficient permissions, and connect it to a server of their choosing. However this does not change the equation much for app developers targeting ordinary people. ↩

Clone repository
  • NGI Proposal
  • Home