AnnotateMore: Server and Folder Annotations Plugin for Squirrelmail

Sample Annotations Tree


This little plugin provides a library with functions that help work with IMAP server and mailbox annotations as defined in [ANNOTATEMORE].

A test program, annotate_tests.php, is provided, in order to check how the functions work. It shows the internal structure of the arrays that are being made available to the developer. It also provides a simple interface to add a new annotation.

Tested with Cyrus IMAPd 2.3.1+CVS. Should work with Cyrus IMAPd version >= 2.2.0, or any server that implements [ANNOTATEMORE]

The screenshot shows the internal tree structure that is available to the programmer after he has retrieved the annotations from the server with sqimap_get_annotation($imapConnection, '*', '/*', '*', true). The server in question is Cyrus IMAPd 2.3. (Note: the tree was created in DHTML using dTree 2.05) by Geir Landrö.


To install the library functions, simply untar the archive under Squirrelmail's plugin directory:

$ cd /path/to/squirrelmail/plugins
$ tar -zxvf /path/to/annotatemore-0.1.tar.gz

Do not enable the plugin in Squirrelmail's configuration, if you are in a production environment.

Only enable the plugin if you want to check if the IMAP server supports annotations, and to enable the demonostration that displays current annotations in a tree-fashion. Developers of other plugins or code that want to use annotations can and should enable the plugin, in order to have the mailbox and server annotations handy for debugging and testing purposes. Enabling the plugin will provide you with an "Annotations" link, which will link to the test page.


IETF Internet Drafts that this work was based on:

[ANNOTATE] contains some information and hints with regard to the .priv and .shared flags, which is also valid for [ANNOTATEMORE].


Please see the download page for more details.

The latest, experimental sources are always available via anonymous CVS: (press enter when asked for a password)

cvs login
cvs -z3 co annotatemore

There is also the ViewCVS interface to the repository.


PEAR's Net_IMAP classes also support ANNOTATEMORE.

The ANNOTATEMORE and related meta-data on IMAP discussions is discussed between the IETF IMAPExt Working Group members, on the IETF-IMAPExt mailing list.

AnnotateMore plugin uses Geir Landrö's dTree 2.05 for showing the annotations tree in annotate_tests.php.


Alexandros Vellis
Email: avel @
National and Kapodistrian University of Athens, Network Operations Centre