$Cambridge: hermes/src/prayer/docs/FEATURES,v 1.1.1.1 2003/04/15 13:00:03 dpc22 Exp $ Performance/Scalability ======================= Persistent Login Sessions: - (Multiple) persistent connections to IMAP and support servers. - Directory cache: single round trip to IMAP server for directory listing. - Works well with UW IMAP server (even using Unix format mail folders). Written entirely in C as HTTP <--> IMAP Gateway. No scripting languages. - No discernible load on a Pentium III class system with 3,000 logins/day - Aggresive HTTP/1.0 and 1.1 connection caching to reduce SSL overhead. - Minimal use of fixed length buffers in C source code. Single Webmail gateway can run on a number of small independant systems: Simple horizontal scalability if needed. Simplicity ========== Few external dependancies (Libraries: c-client, OpenSSL. Optional: cdb). - No external database: user preferences stored on IMAP server. - Single configuration file. Doesn't use Javascript or Frames. - Runs quite happily with Netscape, Mozilla, IE, Lynx, Opera. - Text only mode for Lynx and w3m - Use of nested tables restricted to avoid confusing Lynx. Doesn't need cookies: - Single optional cookie used to hide session-ID from browser URL display. User Interface ============== Message display: Hierachical listing of MIME BODYSTRUCTURE for display/download. User preferences to display TEXT/HTML inline with dangerous tags removed. Special handing for postponed message folder http:// and https:// in body converted into links. Message text wrapped to 80 columns (maintaining correct message quotation) - Colour codes for quoted message text Mailbox list: Aggregate: save, forward, (un)delete, (un)read. Zoom mode. Sort and Reverse Sort folder listing (on one of 7 criteria). Change to/Save marked messages to favourite Folder. Supports Persistent and non-persistent message marking (user preference): Non-persistent: normal Webmail behavior using HTML checkboxes: - Fewer page refreshes, no way to maintain state if links used Persistant: - Marks are HTML links, mark state recorded while stream open. Seach (Message Headers/Text, Delivery Date, Status, Size). - Compound search on marked messages. Full Hierachical folder listing: - single level display with filters - Favourite/subscribed folders for shortcuts on list screen. - Transfer mailfolders to and from IMAP server using HTTP upload/download. Compose: Local address lookup and Gecos expansion. Recursive Addressbook Lookup (with loop detection) Spell Check with Personal dictionary. Adaptive (and hopefully quite intellegent) line wrap algorithm - breaks message into "paragraph" blocks and wraps blocks independently. Undo. Roles. Rich headers. Alt-addresses list and local domain list used when constructing Cc list. Arbitary number of postponed messages using postponed messages folder Personal Addressbook: Search. Import/Export local and remote pine .addressbook format files. Addressbook split into pages: can move to any page Account managment using auxillary "accountd" server: - Change password and Gecos fields. Check disk quota. - Mail redirection, filtering and vacation messages using Exim filter files.