Hi, Le mer. 4 mars 2020 à 14:40, Дилян Палаузов <dilyan.palau...@aegee.org> a écrit : > > Hello, > > is RFC 5465 (IMAP NOTIFY (https://tools.ietf.org/html/rfc5465.html) supported > in 3.0 as stated at > https://www.cyrusimap.org/imap/rfc-support.html ?
I don't see any reference to such RFC 5465 in the code source or in the documentation, where do you find it ? Cyrus only supports RFC 5423 Internet Message Store Events (https://tools.ietf.org/html/rfc5423) and this RFC just defines semantics for event notification on mailbox store, it defines no protocol and no content format. When at Worldline we contributed the code for event notification we made the choice of a JSON format based on this RFC. You have to configure event_notifier with a supported notifyd method in imapd.conf to enable this feature. Here we have our own method to publish in kafka topics. But I think it is not what you want because this is not server to client notification but server to server. > Per RFC 5465 page 7, the server-side support is announced with “ S: * OK > [CAPABILITY IMAP4REV1 NOTIFY]”. The CAPABILITY > answer is generated in imap/imapd.c using “static struct capa_struct > base_capabilities[]” in capa_response(). The > latter contains no code to generate NOTIFY. > > Moreover, the event_notifier in imapd.conf suggests utilizing it for EVENT > NOTIFICATIONS,but the possible options for > notifyd(8) > https://www.cyrusimap.org/imap/reference/manpages/systemcommands/notifyd.html > are null, log, mailto, zephyr > and external: none of which is applicable to IMAP NOTIFY as substitution of > IMAP IDLE. When I worked on event notification at this time I had in mind to prepare the work for implementing IMAP NOTIFY in Cyrus. My opinion is to have a single notification scheme in the source code for EVENT NOTIFICATIONS, for IMAP NOTIFY and for cyrus replication, so avoiding 3 notification schemes. But at this time (pre Cyrus 2.5) the organization of the source code of cyrus was awful and the impact was to huge, and I couldn't do this alone (as an external developper not involved in the community). Regards, Sébastien