This article may be too technical for most readers to understand.(November 2021) |
Original author(s) | Mark Crispin |
---|---|
Developer(s) | University of Washington |
Stable release | |
Repository | |
Type | IMAP server |
License | Apache License 2.0 [2] |
Website | www |
The UW IMAP server was [3] the reference server implementation of the Internet Message Access Protocol. [4] [5] [6] [7] [8] [9] It was developed at the University of Washington by Mark Crispin and others. [10] [4] [5] [6] [7] [8] [9]
UW-IMAP's development began c.1988. [6]
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. [11] [12] [13] As of 2005, by which point its codebase had undergone extensive rewriting, [6] it was among the top two, the other being Cyrus IMAP. [14] [15]
In May 2008, the University of Washington terminated development of UW IMAP. [3]
On 4 August 2008, staff at the University of Washington who had been involved in developing UW IMAP, Pine, and Alpine,[ citation needed ] 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," [16] in the wake of layoffs at the University of Washington's technology division. [17]
c. January - August 2009, the maintainers of Debian GNU/Linux, a major downstream distributor of UW IMAP, began to retire their UW IMAP packages. [18] [19]
In September 2009,[ citation needed ] Mark Crispin, the principal author of UW IMAP, announced a fork called Panda IMAP. [3] Crispin passed away in late 2012. [20]
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. [21]
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. [22] [14] [23] It also received praise for its ease of administration and for its compatibility with longstanding mailbox formats, [7] and for and its small size and simplicity. [24]
Unlike later IMAP servers, UW IMAP coupled IMAP user accounts to user accounts on the server's underlying operating system. [25] [26] 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,[ citation needed ] but drew criticism from some commentators. [27] [28] 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. [29] 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. [30]
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. [9] 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, [24] As of 2007, computer programs existed that were capable of exploiting security vulnerabilities in un-patched or improperly-configured UW IMAP installations. [31] and for its unreliable SSL support. [32]
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.[ citation needed ]
UW IMAP uses the c-client mail engine that is also used by the Alpine [ citation needed ] and Pine e-mail clients. [6] [10] c-client supports multiple mail store formats including Usenet news spools,[ citation needed ] MIX,[ citation needed ] mbox, mbx, mx, mh, tenex, mtx, MMDF, and phile. [6] c-client also includes support for IMAP, POP3, NNTP, and SMTP Internet protocols.[ citation needed ]
Also bundled with UW IMAP are POP2 and POP3 servers, [33] [26] the mailutil utility program, and the dmail and tmail mail delivery agents. [2]
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. [6]
UW IMAP does not officially support the maildir format. [34] However, UW IMAP can be patched to support other formats, such as maildir. [34] Gluelogic offers a patch to support maildirs in Pine. [35] [ third-party source needed ] The patched Pine instance can then be used to compile UW IMAP with nominal maildir support.[ citation needed ] However, this yields a buggy server that will not correctly distinguish between Unseen and Recent messages.[ citation needed ] A patch is available for Alpine that can be used similarly, but with fewer drawbacks. [36] [ third-party source needed ]
In computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by email clients to retrieve email messages from a mail server over a TCP/IP connection. IMAP is defined by RFC 9051.
Within the Internet email system, a message transfer agent (MTA), mail transfer agent, or mail relay is software that transfers electronic mail messages from one computer to another using the Simple Mail Transfer Protocol. In some contexts, the alternative names mail server, mail exchanger, or MX host are used to describe an MTA.
In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. Today, POP version 3 (POP3) is the most commonly used version. Together with IMAP, it is one of the most common protocols for email retrieval.
An email client, email reader or, more formally, message user agent (MUA) or mail user agent is a computer program used to access and manage a user's email.
The Maildir e-mail format is a common way of storing email messages on a file system, rather than in a database. Each message is assigned a file with a unique name, and each mail folder is a file system directory containing these files. Maildir was designed by Daniel J. Bernstein circa 1995, with a major goal of eliminating the need for program code to handle file locking and unlocking through use of the local filesystem. Maildir design reflects the fact that the only operations valid for an email message is that it be created, deleted or have its status changed in some way.
Mbox is a generic term for a family of related file formats used for holding collections of email messages. It was first implemented in Fifth Edition Unix.
qmail is a mail transfer agent (MTA) that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure alternative to the popular Sendmail program. Originally license-free software, qmail's source code was later dedicated to the public domain by the author.
Mutt is a text-based email client for Unix-like systems. It was originally written by Michael Elkins in 1995 and released under the GNU General Public License version 2 or any later version.
Mark Reed Crispin is best known as the father of the Internet Message Access Protocol (IMAP), having invented it in 1985 during his time at the Stanford Knowledge Systems Laboratory. He is the author or co-author of numerous RFCs and was the principal author of UW IMAP, one of the reference implementations of the IMAP4rev1 protocol described in RFC 3501. He also designed the MIX mail storage format.
The Cyrus IMAP server is electronic mail server software developed by Carnegie Mellon University. It differs from other Internet Message Access Protocol (IMAP) server implementations in that it is generally intended to be run on sealed servers, where normal users cannot log in.
getmail is a simple mail retrieval agent intended as a replacement for fetchmail, implemented in Python. It can retrieve mail from POP3, IMAP4, and Standard Dial-up POP3 Service servers, with or without SSL. It supports simple and domain (multidrop) mailboxes, mail filtering via any arbitrary program, and supports a wide variety of mail destination types, including mboxrd, maildir, and external arbitrary mail delivery agents. Unlike fetchmail, getmail's Python foundation makes it nearly immune to buffer overflow security holes. It also has a simpler configuration syntax than fetchmail, but supports fewer authentication protocols. The software can also function as a basic mail delivery agent.
Dovecot is an open-source IMAP and POP3 server for Unix-like operating systems, written primarily with security in mind. Timo Sirainen originated Dovecot and first released it in July 2002. Dovecot developers primarily aim to produce a lightweight, fast and easy-to-set-up open-source email server.
VPopMail is an open-source GPL software package used for managing virtual e-mail domains and non-password e-mail accounts on e-mail servers. It was originally developed by Inter 7.
The comparison of mail servers covers mail transfer agents (MTAs), mail delivery agents, and other computer software that provide e-mail services.
Alpine is a free software email client developed at the University of Washington.
The Courier Mail Server is a mail transfer agent (MTA) server that provides SMTP, IMAP, POP3, SMAP, webmail, and mailing list services with individual components. It is best known for its IMAP server component.
Qpopper was one of the oldest and most popular server implementations of POP3. As a free and open-source server distributed under BSD style license, it was a common choice for Internet Service Providers, schools, corporations, and other organizations. It was included in several Linux and Unix distributions.
MIX is a high-performance, indexed, on-disk email storage system that is designed for use with the IMAP protocol. MIX was designed by Mark Crispin, the author of the IMAP protocol. Server support for it has been included in releases of UW IMAP since 2006, Panda IMAP, and Messaging Architects Netmail. MIX is also supported directly by the Alpine e-mail client.
An e-mail agent is a program that is part of the e-mail infrastructure, from composition by sender, to transfer across the network, to viewing by recipient. The best-known are message user agents and message transfer agents, but finer divisions exist.
OfflineIMAP is IMAP synchronization utility software, capable of synchronizing mail on IMAP server with local Maildir folder or another server.
The University of Washington licenses the source code of the UW IMAP toolkit, imap-2006 and later, under the Apache License, Version 2.0.
The UW IMAP tookit includes the following:
- c‑client library: an API (application programming interface) used to build email clients and servers, including support for IMAP, POP3, SMTP and NNTP protocols and for local mailbox file access on Unix and Windows
- UW's POP2 (ipop2d), POP3 (ipop3d) and IMAP4rev1 (imapd) servers
- mailutil: a utility program which helps manage email mailboxes (both local and IMAP/POP3/NNTP)
- dmail: an MDA (Mail Delivery Agent) for use with procmail
- tmail: an MDA for use with the system mailer (e.g. sendmail, postfix, etc.)
Panda IMAP forked from UW IMAP 2007b when development of UW IMAP was terminated in May 2008. Since then, the University of Washington has made only made minor support changes to UW IMAP (UW IMAP 2007f) for some (but not all) critical problems. All of the UW IMAP 2007f changes, or better, are in Panda IMAP.
Unlike UW IMAP, Panda IMAP fully passes all of the IMAP Server Compliancy Status test suite. Panda IMAP is one of one three servers that do; the others being Dovecot and SurgeMail.
The current version of Panda IMAP is imap-2010...
Panda IMAP is available by donation. Please contact us for further details via email to the panda.com postmaster...
We do not offer support for UW IMAP or Alpine. Both are dead projects. It is doubtful that UW will ever make any further updates to either.
{{cite web}}
: External link in |quote=
(help)What is the LAMP stack of [Unified Communications]? ... Nemertes defines UC systems as providing at a minimum VOIP, Unified Messaging, IM/presence, and conferencing (audio, video, web); additional features may include contact contact functionality, mobile clients, integration with room-based video and telepresence systems, and integration with social computing platforms. Let's look at open source options in the core categories. ... I would be for IMAP, specifically the UW IMAP reference implementation of the IMAP protocols, or the Panda IMAP fork off that tree.
sprintf
) are still plentiful within the code...imap
or uw-imapd
. The IMAP server stores user mail folders in users' home directories, which can be awkward if users also log in to their accounts and store nonmail files there."/var/mail/myusername
. This has two disadvantages: each mail user also must be a system user, and only one process may write to any given user's inbox at any given time, potentially resulting in file-locking complications."Instant Expunge is a site-configurable setting that makes Citadel's IMAP service behave in a sensible way when deleting messages, as opposed to the behavior defined by RFC 3501.
The IMAP protocol does not have a direct way of deleting messages. Instead, the client must set a "Deleted" flag on any messages which are to be deleted, and then perform an "Expunge" operation afterwards to actually delete the messages from the mailbox. It was designed this way because the reference implementation (UW IMAP) stores entire mailboxes in flat files, and deleting a single message requires rewriting the entire file. Rather than fix the limitations of this message store, Mark Crispin decided to implement a workaround and then define that workaround as part of the standard. By "expunging" a mailbox at a later time, the file is only rewritten once.
Obviously, this functionality is obtuse and unnecessarily complicated for any other mail system, particularly one such as Citadel which stores messages in a database.