UW IMAP

The UW IMAP server was the reference server implementation of the Internet Message Access Protocol. It was developed at the University of Washington by Mark Crispin and others.

History
UW-IMAP's development began c.1988.

As of 2003, UW IMAP was among the three most popular free software IMAP server packages, the other two being Cyrus IMAP and Courier IMAP. As of 2005, by which point its codebase had undergone extensive rewriting, it was among the top two, the other being Cyrus IMAP.

In May 2008, the University of Washington terminated development of UW IMAP.

On 4 August 2008, staff at the University of Washington who had been involved in developing UW IMAP, Pine, and Alpine, announced that they would "shift our effort from direct development into more of a consultation and coordination role to help integrate contributions from the community," in the wake of layoffs at the University of Washington's technology division.

c. January - August 2009, the maintainers of Debian GNU/Linux, a major downstream distributor of UW IMAP, began to retire their UW IMAP packages.

In September 2009, Mark Crispin, the principal author of UW IMAP, announced a fork called Panda IMAP. Crispin passed away in late 2012.

At least one UW IMAP enthusiast maintains a public source code repository containing the UW IMAP and Panda IMAP commit history from the start of the project until Crispin's final release.

Praise and criticism
For much of the 2000s, UW IMAP was considered to be a good choice due to its ready availability, its inclusion in all major Linux distributions, its support for both POP and IMAP, and its ease of installation. It also received praise for its ease of administration and for its compatibility with longstanding mailbox formats, and for and its small size and simplicity.

Unlike later IMAP servers, UW IMAP coupled IMAP user accounts to user accounts on the server's underlying operating system. This feature, together with UW IMAP's default use of monolithic mailbox files, was intended to ensure compatibility with legacy operating systems and email management practices, but drew criticism from some commentators. In particular, Sam Varshavchik, developer of the competing Courier IMAP server, suggested that Crispin's decision not to add support for maildir (a popular non-monolithic mailbox format) to UW IMAP may have stemmed from lingering resentment over an earlier disagreement that Crispin had had with maildir's designer, Daniel J. Bernstein. Crispin's insistence upon retaining UW IMAP's support for flat files as mail stores was criticised, by the maintainers of the competing Citadel IMAP server, for causing otherwise unnecessary complexity in the IMAP protocol.

Additionally, Varshavchik noted that despite Crispin's insistence that other IMAP servers comply with the IMAP specifications, the UW IMAP server and its IMAP client counterpart, Pine, used a private IMAP extension that was not documented in that specification. UW IMAP was also criticised for its susceptibility to buffer overflows and for its lack of privilege separation relative to its competitors Cyrus and Courier, As of 2007, computer programs existed that were capable of exploiting security vulnerabilities in un-patched or improperly-configured UW IMAP installations. and for its unreliable SSL support.

Components and features
UW IMAP was designed to be compatible with existing legacy mail stores and systems, and to be "plug-and-play" installable without requiring any site-specific configuration.

UW IMAP uses the c-client mail engine that is also used by the Alpine and Pine e-mail clients. c-client supports multiple mail store formats including Usenet news spools, MIX, mbox, mbx, mx, mh, tenex, mtx, MMDF, and phile. c-client also includes support for IMAP, POP3, NNTP, and SMTP Internet protocols.

Also bundled with UW IMAP are POP2 and POP3 servers, the mailutil utility program, and the dmail and tmail mail delivery agents.

As of 2005, UW IMAP's codebase consisted of 135,000 lines of code, of which the IMAP server itself comprised 4,000 lines and c-client comprised the rest.

Extensibility and maildir support
UW IMAP does not officially support the maildir format. However, UW IMAP can be patched to support other formats, such as maildir. Gluelogic offers a patch to support maildirs in Pine. The patched Pine instance can then be used to compile UW IMAP with nominal maildir support. However, this yields a buggy server that will not correctly distinguish between Unseen and Recent messages. A patch is available for Alpine that can be used similarly, but with fewer drawbacks.