Todo lists, 2.4.11 and 2.5 preview
sebastien.michel at atosorigin.com
Thu Aug 11 18:39:36 EDT 2011
> PS^2; I would also like some input for those of us that enjoy playing,
> researching, testing and documenting ;-)
I've pushed a draft in our github repository :
https://github.com/worldline-messaging/cyrus-imapd branch msgevent.
Most of the commit is viewable here :
People can play with it, I made some bunchs of tests without any issue.
below the available options :
- eventnotifier: enable message store event notification with the
just set eventnotifier: log in your imapd.conf to enable notification to syslog
- event_exclude_flags: don't notify
FlagsSet/FLagsClear/MessageTrash/MessageRead notification for given
flag(s) or remove the given flag(s) from the flagNames list in case of
- event_exclude_folders: not yet supported. Disable notification if
event occur on a folder in the list (ie Spam folder)
- event_extra_params (flagnames, messages, timestamp, uidnext,
vnd.cmu.midset, vnd.cmu.newMessages) a list of extra parameters to add
to notifications that are not mandatory in the RFC.
- event_groups (message, flags, mailbox, access) : not yet supported.
Enable notification for these groups of events as suggested in the RFC
- event_notifspam: not yet supported. Disable event notification for
email rated as spam. Needs a standard way to identify a message marked
as spam ($Junk flag ?)
- event_timestamp_format (iso8601, epoch) : set the format of the
timestamp parameter. Both formats print fraction of second for easier
To discuss a little about the code. I first thought to collocate the
notification code to the auditlog trace code or at a low level in the
code on any mailbox change. But for both choices we lose the context
of the change (send 3 notifications per mailbox rename, may send
several notifications in a mailboxe hierarchy, send notification for
mailbox create on the cyrus slave, ...) and become not RFC compliant.
In our current code that runs in cyrus 2.3, the event_state structure
is define in the mailbox structure. But I decided to get out
event_state in order to respect the separation of concern.
here is my todo list:
- the ability to turn on and off groups of related events
- the ability to turn off notification that occur on a given list of
folder (may depend on SPECIAL-USE ?)
- the ability to turn off notification for SPAM
- handle event notification in cyrus admin tools (ipurge, ...)
- format the IMAP URL with the external representation of the mailbox
- provide JSON as default format and key/value pairs format in contrib/
- provide a stomp or AMQP connector to notifyd
- some code improvements (better event_state allocation, handle them
in a list, choose between EVENT_PENDING/EVENT_ABORTING states and
- write documentation :)
I'm on holiday for two weeks. But feel free to make any comment,
suggestion about the design of the code, new features, the name of
function/structure/file/option or whatever.
You may have noticed that Coloos Julien, Olivier Roland, Christophe
Zbierski and I are all members of the same team at Atos Worldline
More information about the Cyrus-devel