|
|
|
*Other Wiki pages: [NGI Proposal](https://lab.trax.im/up-for-imap/up-for-imap/-/wikis/NGI-Proposal)*
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# UnifiedPush for email via IMAP WebPush
|
|
|
|
|
|
|
|
This project brings freedom-tech push notifications to mobile email.
|
|
|
|
|
|
|
|
Email apps are a priority for wider adoption of UnifiedPush, the standard for independent mobile push notifications. Providers wait for app support, apps wait for server support, but mail servers are diverse.
|
|
|
|
|
|
|
|
This project implements:
|
|
|
|
|
|
|
|
## Project Summary
|
|
|
|
- an IMAP extension for WebPush support, in one IMAP server;
|
|
|
|
- UnifiedPush via IMAP-WebPush, in one mobile IMAP client.
|
|
|
|
|
|
|
|
Referring to a draft specification for "IMAP WebPush Extension":
|
|
|
|
The chosen IMAP server and client are likely to be Dovecot (as used in mailcow) and K9-mail (now a Thunderbird project).
|
|
|
|
|
|
|
|
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.
|
|
|
|
The result will:
|
|
|
|
|
|
|
|
Outputs:
|
|
|
|
- demonstrate the feasibility of freedom-tech push notifications for email;
|
|
|
|
- demonstrate the feasibility of adding it to common existing (IMAP) mail servers;
|
|
|
|
- provide a proof-of-concept implementation for one server and one client.
|
|
|
|
|
|
|
|
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.
|
|
|
|
This implementation will initially follow a draft specification for IMAP WebPush Extension. This work may support and inform an update to that spec.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
*The section above is also in the [NGI Proposal](NGI-Proposal). The following sections are additional.*
|
|
|
|
|
|
|
|
## Rationale
|
|
|
|
|
| ... | ... | @@ -34,6 +43,11 @@ Many email servers, probably most, are unlikely to adopt a new extension, in the |
|
|
|
Even a modest increase in server support might be expected to enable a more than proportionate increase in client support.
|
|
|
|
|
|
|
|
|
|
|
|
## Ecosystem
|
|
|
|
|
|
|
|
MicroG implements an interface to Google's FCM push notifications service, within a mostly free-software OS, for apps that request it. MicroG might be a place where it is useful to add a UnifiedPush distributor. It could integrate partially with the FCM service. Therefore this might also be of interest when considering the impact of enabling UnifiedPush for email apps.
|
|
|
|
|
|
|
|
|
|
|
|
## References
|
|
|
|
|
|
|
|
- [UnifiedPush](https://unifiedpush.org/) -- [source](https://codeberg.org/UnifiedPush/)
|
| ... | ... | @@ -46,6 +60,10 @@ Even a modest increase in server support might be expected to enable a more than |
|
|
|
- [lttrs-android](https://codeberg.org/iNPUTmice/lttrs-android) supports U-P via JMAP WebPush
|
|
|
|
- [DeltaChat](https://delta.chat/) -- [source](https://github.com/deltachat) -- [other clients](https://support.delta.chat/t/list-of-all-know-client-projects/3059)
|
|
|
|
- [K9-mail](https://k9mail.app/) -- [source](https://github.com/k9mail) -- [closed](https://github.com/thunderbird/thunderbird-android/issues/5123) [issues](https://github.com/thunderbird/thunderbird-android/issues/5165) -- [JMAP request](https://github.com/thunderbird/thunderbird-android/issues/3272) -- [wishlist](https://connect.mozilla.org/t5/ideas/idb-p/ideas/label-name/thunderbird%20android) (this is not on it)
|
|
|
|
- Email servers:
|
|
|
|
- [mailcow](https://docs.mailcow.email/) (contains Dovecot)
|
|
|
|
- [Dovecot](https://doc.dovecot.org) -- [push plugin](https://doc.dovecot.org/main/core/plugins/push_notification.html), [push-lua](https://doc.dovecot.org/main/core/plugins/push_notification_lua.html)
|
|
|
|
- [Stalwart](https://stalw.art/) -- [JMAP push](https://stalw.art/docs/jmap/push/)
|
|
|
|
|
|
|
|
---
|
|
|
|
[^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. |