Bug#392823: RFP: prayer -- fast IMAP-based web mail system with few dependencies
Package: wnpp
Severity: wishlist
* Package name : prayer
Version : 1.0.18
Upstream Author : David Carter <dpc22@cam.ac.uk>
* URL : http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/
* License : GPL
Description : IMAP-based web mail system
Prayer is an IMAP-based web mail system. It is written in C and has
few dependencies. In partiuclar, it doesn't require an HTTP server or
a database. It doesn't use Javascript or frames, and doesn't require
cookies.
Here's the contents of the docs/FEATURES file:
$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.
--
Roderick Schertler
roderick@argon.org
Reply to: