Here is our list of requrements. Some of these are brought to us through the power of 20/20 hindsight, some of these we knew from the get go.
The Requirements List
Support for delivery to local users, i.e. users that have a shell account.
Local users shall be able to use procmail.
Ease of integration into existing mail systems.
Access to mail through IMAP.
Support for virtual IMAP accounts, i.e. users that have an IMAP login and password, but do not have a shell acount.
Access to mail through maildir folders on the local filesystem for shell users.
Forwarding (alias) entries for virtual domains.
An interface to read email via the web.
The ability to host multiple domains from a single server with one IP address.
Liberal use of encryption such that passwords never go over the network in clear text.
For Keith, the important item was fitting into how he already did his e-mail (using procmail and mutt with maildir mailboxes.) For Dave, the important items were IMAP and procmail support. Both of us thought web access would be a huge plus for when we couldn't use our mail reader of choice. Both had other domains they were asked to host for friends and family, but they didn't want to give out shell access.
A goal we had given ourselves was Universal Mail Availability. With local support, IMAP support, and web support we were sure to reach that goal.