linagora / tmail-flutter

A multi-platform (Flutter) application for reading your emails, with your favorite devices, using the JMAP protocol!
GNU Affero General Public License v3.0
278 stars 61 forks source link

[Requirement] Simplyfize Tmail push notification #2874

Open hoangdat opened 1 month ago

hoangdat commented 1 month ago

As expressed in todays TMail point it would be really useful to add configurations for notifications from within TMail.

This makes it waaay easier for user to locate notification settings.

So:

Notification setting is per-device. No need to store it server side.

signal-2024-05-13-155846

Todo

Notification toggle

System's setting sync

tddang-linagora commented 1 month ago

Since no application can change system settings, the toggle will only reflect the current system setting, and tapping on this toggle will direct user to system setting. This behavior is also implemented by GMail

hoangdat commented 1 month ago

@tddang-linagora please write also in ADR

tddang-linagora commented 1 month ago

@tddang-linagora please write also in ADR

ADR added in PR

X-Ryl669 commented 1 month ago

Does Twake mail support notifications from a JMAP server (like Stalwart) or do we absolutely need to use Linagora's servers?

I've tried on Android and I don't see any notification and I don't see jmap client registering for an eventSource or a websocket on the server.

If I understand the exchanges on this repository, please correct me if I'm wrong, but Twake only support notifications via FCM and sending such notifications are only possible for Linagora, since I don't have any FCM credentials, right?

hoangdat commented 1 month ago

Hi @X-Ryl669 ,

At the moment, Linagora's JMAP have an extension https://github.com/linagora/tmail-backend/blob/master/docs/modules/ROOT/pages/tmail-backend/jmap-extensions/pushWithFirebase.adoc to integrate with FCM. So you will not have notification if your server did not support this extension.

Thanks.

chibenwa commented 1 month ago

Does Twake mail support notifications from a JMAP server (like Stalwart)

We have in our roadmap to make Twake mail web compliant with JMAP over websocket.

https://datatracker.ietf.org/doc/rfc8887/

Contributions more than welcome!

Regarding webpush unless you operate your own push gateway and have control over your mobile device fleet the more likely answer is "no" because webpush is not easy to deploy.

I heard claims the core JMAP spec along VAPID keys CF https://datatracker.ietf.org/doc/draft-ietf-jmap-webpush-vapid/ could be used in combinason of something like firebase and if someone pull of such a contribution he definitly get a beer in next FOSDEM!

Does this answers your question @X-Ryl669 ?

X-Ryl669 commented 1 month ago

I have a google-free phone. So no Firebase for me.

Any push technology other than Firebase would work. I think the best one would be UnifiedPush (with NTFY) since having only one open lingering connection is better than many to avoid battery drain.

Currently, I'm using FairMail with a lingering IMAP IDLE socket. If Twake mail had notifications I would probably use it in place of FairMail which I find too complex and ugly.

Honestly, I'm not a protocol lawyer, so I don't what protocol is best. For me, the best technology is the one that works.

hoangdat commented 1 week ago