Dovecot/Postfix Extension to provide extra Delta Chat features?

Has anyone thought about making email server extensions that self-hosted email server admins could install in order to provide more functionality for Delta Chat users? For example, perhaps there could be an extension that detects when both mary@example.com and john@example.com are both connected to the same email server and if that’s the case, show an “online” indicator, and then if they are typing messages to eachother, show a “typing” indicator. Maybe it would have to use an additional protocol like WebRTC though, huh? It probably wouldn’t work across different federated servers/domains, but still for people on the same domain it could be nice.
Maybe such a server extension could also allow server admins to enable Apple Push Notifications Service since it sounds like that’s the only way to get app notifications on Apple devices.

3 Likes

There are some ideas for this.
Probably the furthest anyone got yet is OpenXchange with their COI project coi-dev · GitHub, though that seems dead since some time already now.

Typing and online indicators also need ways to opt-out because they can encourage toxic behaviour, also people would expect to have them for every contact I guess.

We currently plan to upgrade our heartbeat server* GitHub - deltachat/notifiers: Notify devices to also support relaying notification from other providers, for example via a dovecot extension.

*currently pings all apple devices every 20min or so to wake up the background process that check for new messages, because apple does not allow us to keep the socket open for imap idle.

1 Like

I totally agree about typing/online indicators being opt-in or opt-out. My opinion would be to keep them out totally, but other people like them. Also the current online indicator isn’t really indicating that the other person is online; only that they were recently online. But there is a precedence for typing indicators not always working… many other messaging apps that have that feature have an off button with notes that explain something like “By turning this off you will no longer see typing indicators from others and others will no longer see typing indicators from you.” So you could have it turned on, while I have it turned off, and you would not see typing indicators from me, but you would see them from other people who have it turned on. But yes, making that federate with other servers would probably be very difficult and maybe not worth it.

Does the heartbeat server only work with certain email providers? Is that why iPhones on my self hosted server don’t get notifications if the app wasn’t running recently?

Our iOS Background code could still have bugs, like waking up but failing to get the messages, if you want you can help us find out more: no notifications or delayed notifications · Issue #1882 · deltachat/deltachat-ios · GitHub

Hello :wave:,
In my experience, when DC is in RAM, iOS will almost always wake it up in the background within 20 minutes to check for new messages.
Unfortunately I don’t know why it sometimes doesn’t work.
It might be a bug or the server is sometimes overloaded.
If DC is not in RAM, it usually takes a long time for new messages to appear.
So iOS seems to only respond to the heartbeat server if DC isn’t completely shut down.

Has anyone looked at possibly using ntfy.sh for notification pushes on iOS? They way they did it seems to allow for an upstream notifications server that connects to APNS/Firebase to serve the notifications. See: Configuration - ntfy
Maybe Delta Chat for iOS could have a settings field that lets users input a notifications server? Or maybe there’s some way to integrate a Dovecot server with a self-hosted NTFY server? Hmm.
It sounds like NTFY is how Element the Matrix client
does it: Integrations + projects - ntfy