About Cyrus
***********


What is Cyrus
=============

Electronic mail is a major infrastructure service of most
organizations. At Carnegie Mellon the use of electronic mail has
overshadowed the use of all other distributed services since the early
1990s. At that time, the Andrew Mail and Bulletin Board System (AMS)
was a universally available service, and departments without AMS ran
their own mail systems. AMS has since been deprecated, and Project
Cyrus is now the campus-wide mail system.

Cyrus is a highly scalable enterprise mail system designed for use in
enterprise environments of various sizes using standards based
technologies. Cyrus technologies scale from independent use in email
departments to a system centrally managed in a large enterprise.


What is IMAP?
=============

The Cyrus IMAP (Internet Message Access Protocol) server provides
access to personal mail and system-wide bulletin boards through the
IMAP protocol. The Cyrus IMAP server is a scalable enterprise mail
system designed for use from small to large enterprise environments
using standards-based technologies.

A full Cyrus IMAP implementation allows a seamless mail and bulletin
board environment to be set up across multiple servers. It differs
from other IMAP server implementations in that it is run on "sealed"
servers, where users are not normally permitted to log in. The mailbox
database is stored in parts of the filesystem that are private to the
Cyrus IMAP system. All user access to mail is through software using
the IMAP, POP3, or KPOP protocols.

The private mailbox database design gives the server large advantages
in efficiency, scalability, and administrability. Multiple concurrent
read/write connections to the same mailbox are permitted. The server
supports access control lists on mailboxes and storage quotas on
mailbox hierarchies.


IMAP Version 4 (IMAP4)
======================

The core technology used by Project Cyrus is the Internet Message
Access Protocol (IMAP4). IMAP4 specifies a network protocol for
accessing a remote message store from a client application. It is an
Internet Standard (RFC 3501), and it is quickly gaining acceptance as
the Internet standard for mail store access. Many major universities
are basing their future distributed mail solutions on IMAP4. The
previous versions of IMAP, IMAP2 and IMAP2bis are backward compatible
with IMAP4 and are already in widespread use. There are already
clients in existence on every major platform and many more in the
works.

IMAP4 is an improvement over other popular Internet mail protocols
when it comes to scale and availability. The Post Office Protocol
(POP) family, and similar protocols, are less useful to a student-
heavy user base, as they are designed to act primarily as store and
forward engines. Clients contact a remote message store and download
all their mail to a local message store. When the messages have been
downloaded from the remote message store to the client, mobility
becomes a real problem: The downloaded messages are no longer easily
accessible from other clients. Even more importantly, many of the
clients that students use have no permanent storage for their use,
necessitating use of a remote filesystem for storage, which leads to
problems with access and scale.

IMAP4 is a super-set of the functionality provided by POP3 -- that is,
all the functionality of a POP3 client can be mimicked using the IMAP4
protocol. The IMAP4 revision of the IMAP protocol adds support for
disconnected operation. This will allow for a client on a notebook
computer to download portions of a mail store and keep them
synchronized with the mail store over time.


Mime
====

One of the goals of Project Cyrus is to support the MIME internet
standard message interchange format. IMAP4 has rich support for MIME,
allowing the MIME structure to be examined without downloading the
whole message to the client and for individual MIME parts to be
downloaded. For example, if a MIME message includes a 5meg audio
portion and your client does not support audio, IMAP4 will allow all
of the message to be downloaded with the exception of that MIME part.
This is also important functionality for disconnected and slow link
operation.


SMTP
====

The Simple Mail Transport Protocol (SMTP) is the Internet standard for
transporting mail. It is widely implemented and must be used by anyone
who wants to communicate with the Internet community. SMTP is used
solely for delivery of mail. It is not intended for dilail servers,
gateways, and clients deliver mail to mail stores and gateways. SMTP
is not intended for delivery of mail directly to clients. In addition,
it is not wise to have clients deliver mail to the final destination
in all cases. Often mail can not be delivered to the destination
because of bad network connections, temporary machine downtime, or
load problems at either end. In these cases the SMTP delivery agent
must re-queue the mail and try again later. Since mail clients can be
office machines which are not guaranteed to remain on or operational,
it is not optimal for them to be delivering directly to remote
destinations. To solve this, most mail clients deliver mail to post
office machines which will deliver the mail on their behalf. Other
reasons for this include better name resolution and error handling.

Project Cyrus uses SMTP as the protocol for mail transport. For
internal use between Cyrus clients and Cyrus post office machines,
Kerberos extensions have been added to SMTP to allow for better
guarantees of the originator of the message. Some time in the future,
the Kerberos extensions may be replaced or augmented by some form of
Privacy Enhanced Mail (PEM), but that is not in the original scope of
Project Cyrus.
