Currently, the process of “handling” incoming email IMIP messages is located in the mail client app. The thunderbird client also has the ability to scan incoming email, and pass incoming IMIP messages to its calendar app.
Other mail+calendar services (e.g. google), however, process IMIP messages on the server side. The advantage is that all calendar clients see event arrivals and updates (which they can accept, decline, etc), even when no mail app is running or has been run.
It is fairly easy to configure dovecot pigeonhole to filter for IMIP mime parts in incoming email, and pipe them via http to nextcloud, if only nextcloud had a URL endpoint to receive IMIP (from the sieve pipe) and process them.
Is there such an http endpoint?
If not, and I were to create one, should it be part of the “dav” app? There is already handleIMipMessage() in apps/dav/lib/CalDAV/CalendarImpl.php, I just need the POST to pass it from dovecot to nextcloud.
Is this a crazy/bad idea for reasons I’m not considering?
I’m not aware that we have a specific http endpoint to process imip messages. Thunderbird or Nextcloud Mail would store those requests to your actual calendar.
I think that’s a bit to niche to add it to the dav app. It should work to implement such an http endpoint in your own app and use the php based calendar apis we provide.
That http endpoint must be able to write to everyones calendar. Also you need some mapping from the inviations recipient to a user and his calendar in Nextcloud. That only works if an emai laddress only exists once in Nextcloud, but that’s currently not enforced.
I think we implemented the imip processing in mail because it works without any server side setup. Is there a problem you are facing with it?
A. we process messages internally (itip) when the calendar app is used, yes this only works for internal users only, and can be triggers from the UI and any DAV client like TB
B. we already scan emails (mail app and account is required) for invitation and send them for imip processing.