<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Developer's guide</TITLE ><META NAME="GENERATOR" CONTENT="aD Hack of: Modular DocBook HTML Stylesheet Version 1.60"><LINK REL="HOME" TITLE="Webmail" HREF="index.html"><LINK REL="PREVIOUS" TITLE="ACS Administrator's guide" HREF="acs-admin-guide.html"><LINK REL="NEXT" TITLE="Webmail Design Document" HREF="design.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="ad-doc.css"></HEAD ><BODY CLASS="chapter" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Webmail</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="acs-admin-guide.html" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="design.html" >Next</A ></TD ></TR ></TABLE ><HR SIZE="1" NOSHADE="NOSHADE" ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="chapter" ><H1 ><A NAME="dev-guide" >Chapter 2. Developer's guide</A ></H1 ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="requirements" >2.1. Webmail Application Requirements</A ></H1 ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT >2.1.1. <A HREF="dev-guide.html#requirements-introduction" >Introduction</A ></DT ><DT >2.1.2. <A HREF="dev-guide.html#requirements-vision-statement" >Vision Statement</A ></DT ><DT >2.1.3. <A HREF="dev-guide.html#requirements-systemapplication-overview" >System/Application Overview</A ></DT ><DT >2.1.4. <A HREF="dev-guide.html#requirements-use-cases-and-user-scenarios" >Use-cases and User-scenarios</A ></DT ><DT >2.1.5. <A HREF="dev-guide.html#requirements-competitive-analysis" >Competitive Analysis</A ></DT ><DT >2.1.6. <A HREF="dev-guide.html#requirements-related-links" >Related Links</A ></DT ><DT >2.1.7. <A HREF="dev-guide.html#requirements--requirements-data-model" >Requirements: Data Model</A ></DT ><DT >2.1.8. <A HREF="dev-guide.html#requirements--requirements-webmail-administration" >Requirements: Webmail Administration</A ></DT ><DT >2.1.9. <A HREF="dev-guide.html#requirements--requirements-webmail-user-interface" >Requirements: Webmail User Interface</A ></DT ><DT >2.1.10. <A HREF="dev-guide.html#requirements-revision-history" >Revision History</A ></DT ></DL ></DIV ><P > by <A HREF="mailto:erik@arsdigita.com" TARGET="_top" >Erik Bielefeldt</A > </P ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements-introduction" >2.1.1. Introduction</A ></H2 ><P >This document describes the requirements for the ACS Webmail application. The Webmail application provides a web-based email service.</P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements-vision-statement" >2.1.2. Vision Statement</A ></H2 ><P >Web-based email is a convenient and highly accessible way of communicating over the internet. Because web-based email only requires a browser, it is accessible from almost any connected computer, and because all the messages are stored on a server, it is easy for the user to check his or her mail from a number of different machines. The Webmail application aims to achieve the following goals:</P ><UL ><LI ><P CLASS="listitem" >Provide a reliable web-based email service</P ></LI ><LI ><P CLASS="listitem" >Provide a simple, but powerful user-interface</P ></LI ><LI ><P CLASS="listitem" >Provide a service competitive with other commercial web-based email services</P ></LI ><LI ><P CLASS="listitem" >Provide a scalable data-model and efficient implementation</P ></LI ><LI ><P CLASS="listitem" >Integerate seemlessly with the ACS core (and other modules)</P ></LI ></UL ><P ><I CLASS="emphasis" >See <A HREF="dev-guide.html#requirements-competitive-analysis" >Competitive Analysis</A > for further discussion of what Webmail should and should not provide in the future.</I > </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements-systemapplication-overview" >2.1.3. System/Application Overview</A ></H2 ><P >The Webmail application consists of:</P ><UL ><LI ><P CLASS="listitem" >An interface for the user including: <UL ><LI ><P CLASS="listitem" >Browsing available messages</P ></LI ><LI ><P CLASS="listitem" >Reading specific messages</P ></LI ><LI ><P CLASS="listitem" >Composing outgoing messages</P ></LI ><LI ><P CLASS="listitem" >Customizing the user interface and functionality of the application</P ></LI ></UL > </P ></LI ><LI ><P CLASS="listitem" >An interface for the administrator which includes: <UL ><LI ><P CLASS="listitem" >Creating and deleting domains handled by Webmail</P ></LI ><LI ><P CLASS="listitem" >Adding and deleting users in those domains</P ></LI ><LI ><P CLASS="listitem" >Viewing a list of recent Webmail errors</P ></LI ></UL > </P ></LI ></UL ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements-use-cases-and-user-scenarios" >2.1.4. Use-cases and User-scenarios</A ></H2 ><P >The Webmail application is intended to provide ArsDigita employees and community members a web-based email service. Users would be community members who are looking for a convenient mail-service which would seamlessly integrate with other ACS tools, or people looking to escape highly commercialized mail-systems like Hotmail or Yahoo! Mail.</P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements-competitive-analysis" >2.1.5. Competitive Analysis</A ></H2 ><P >As a pure web-based email system, Webmail will equal, and eventually surpass Hotmail, Yahoo! Mail, and other commercial web-based email services in usability and functionality.</P ><P >In comparison to other mail solutions as a whole (this includes IMAP, POP, and custom solutions), however, there is still a lot lacking. The user-interfaces of web-based email systems tend to be somewhat more cumbersome than specialized mail clients like Microsoft Outlook and Netscape Messenger. Their strength is their accessibility--all that is needed is a web browser. The optimal solution for an individual, however, might a combination of both: a specialized client which can be run on the user's primary machine and web-based access for those times when that individual does not have access to the primary machine. There are already systems which allow this, including several free IMAP versions. The advantage of IMAP systems is that they are based on a standard protocol which allows users to choose their client application. They also allow users to store messages on the server rather than on the client, thus allowing the messages to be accesible from numerous locations.</P ><P >The question facing ArsDigita is what sort of a solution would we like to be able to provide? Webmail certainly offers basic email functionality to any site which chooses to install it, and this is probably enough for most casual users, but it does not offer a complete solution for a business looking to provide their employees or customers with a high-powered email system for business use. There are several options ArsDigita can take in continuing webmail development: (arranged from easiest to most difficult to implement)</P ><UL ><LI ><P CLASS="listitem" >Continue improvements on the current system--keeping it web-based but trying to offer the most powerful, flexible features of any web-based system. For anyone who moves around a lot, Web-based solutions are the most accessible. With continued improvement, the user interface could be made to match that of client-based solutions.</P ></LI ><LI ><P CLASS="listitem" >Integrate the ACS with an existing IMAP solution, relying on their product for functionality (with some customizations), but providing a seemless user-experience and crossover between their system and other ACS functionalities</P ></LI ><LI ><P CLASS="listitem" >Develop a custom server (probably IMAP) for ACS</P ></LI ></UL ><P > Email is such a core part of building a community that I believe that ArsDigita must provide some form of it. Whether it is worth the resources to provide something beyond the current web-based system still needs to be assessed. </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements-related-links" >2.1.6. Related Links</A ></H2 ><UL ><LI ><P CLASS="listitem" ><A HREF="design.html" >Webmail Design Document</A ></P ></LI ><LI ><P CLASS="listitem" ><A HREF="acs-admin-guide.html#install" >Installing WebMail ACS 4.0</A ></P ></LI ></UL ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements--requirements-data-model" >2.1.7. Requirements: Data Model</A ></H2 ><UL ><LI ><P CLASS="listitem" ><B CLASS="phrase" >10.0 Domains</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >10.1</B > Domains have a full domain name</P ><P CLASS="listitem" ><B CLASS="phrase" >10.2</B > Domains have a short name for internal use</P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >20.0 Users</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >20.1</B > Users have an email user name</P ><P CLASS="listitem" ><B CLASS="phrase" >20.2</B > Users are associated with a domain</P ><P CLASS="listitem" ><B CLASS="phrase" >20.3</B > Users have a referenced column in the users table</P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >30.0 Mailboxes</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >30.1</B > Mailboxes are associated with users</P ><P CLASS="listitem" ><B CLASS="phrase" >30.2</B > Mailboxes are uniquely identified by name and associated user</P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >40.0 Incoming Messages</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >40.1</B > Messages are associated with mailboxes (and hence to users)</P ><P CLASS="listitem" ><B CLASS="phrase" >40.2</B > Messages have various flags to record their states (deleted, answered, read, draft, etc.)</P ><P CLASS="listitem" ><B CLASS="phrase" >40.3</B > Messages have headers associated with them which keep track of their header information</P ><P CLASS="listitem" ><B CLASS="phrase" >40.4</B > Messages have attachments associated with them which store any data received as an attachment</P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >50.0 Outgoing Messages</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >50.1</B > Messages are associated with the composing user</P ><P CLASS="listitem" ><B CLASS="phrase" >50.2</B > Messages have headers associated with them which keep track of their header information</P ><P CLASS="listitem" ><B CLASS="phrase" >50.3</B > Messages have attachments associated with them which store any data received as an attachment</P ></LI ></UL ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements--requirements-webmail-administration" >2.1.8. Requirements: Webmail Administration</A ></H2 ><UL ><LI ><P CLASS="listitem" ><B CLASS="phrase" >60. 0 Creating Domains</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >60.1</B > The administrator may create or delete domains for which Webmail will accept mail </P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >70.0 Creating Webmail Accounts</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >70.1</B > The administrator may create or delete user Webmail accounts</P ><P CLASS="listitem" ><B CLASS="phrase" >70.2</B > The administrator may set the size limit(in mb) of Webmail accounts </P ></LI ></UL ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements--requirements-webmail-user-interface" >2.1.9. Requirements: Webmail User Interface</A ></H2 ><UL ><LI ><P CLASS="listitem" ><B CLASS="phrase" >80.0 Browsing Messages</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >80.1</B > The user may browse any of his or her existing mailboxes</P ><P CLASS="listitem" ><B CLASS="phrase" >80.2</B > Messages are listed by address, subject, size, whether it has been read, and time</P ><P CLASS="listitem" ><B CLASS="phrase" >80.3</B > The user may sort the messages by any of the above columns </P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >90.0 Reading Messages</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >90.1</B > The user can view the body and certain headers of the message</P ><P CLASS="listitem" ><B CLASS="phrase" >90.2</B > The user can move, delete, forward, or reply to the message</P ><P CLASS="listitem" ><B CLASS="phrase" >90.3</B > The user may skip to the next, next unread, previous, and previous unread messages, or to the browsing view (index) </P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >100.0 Composing Messages</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >100.1</B > The user may enter the following fields: recipient, cc, bcc, subject, body</P ><P CLASS="listitem" ><B CLASS="phrase" >100.2</B > Only the recipient is required</P ><P CLASS="listitem" ><B CLASS="phrase" >100.3</B > The user may upload and attach files to the message</P ><P CLASS="listitem" ><B CLASS="phrase" >100.4</B > The user may attach a signature</P ><P CLASS="listitem" ><B CLASS="phrase" >100.5</B > The user may select whether to allow html tags in the message</P ><P CLASS="listitem" ><B CLASS="phrase" >100.6</B > The user may view an html preview of their message </P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >110.0 Filtering Messages</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >110.1</B > The user may filter messages by any message header, body, status, mailbox, and age</P ><P CLASS="listitem" ><B CLASS="phrase" >110.2</B > Filters can be applied to incoming messages and have an associated action executed upon that message</P ><UL ><LI ><P CLASS="listitem" ><B CLASS="phrase" >110.2.1</B > Actions include refiling, deleting, and forwarding </P ></LI ></UL ><P CLASS="listitem" ><B CLASS="phrase" >110.3</B > Filters can be used to generate views based on the filter constraints</P ><UL ><LI ><P CLASS="listitem" ><B CLASS="phrase" >110.3.1</B > Views can be saved, edited, and applied </P ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >110.3.2</B > Views can be created on the fly as dynamic searches </P ></LI ></UL ></LI ><LI ><P CLASS="listitem" ><B CLASS="phrase" >120.0 Security</B ></P ><P CLASS="listitem" ><B CLASS="phrase" >120.1</B > The user may only access messages in his or her own mailboxes -- this includes reading, browsing, responding to, and forwarding</P ><P CLASS="listitem" ><B CLASS="phrase" >120.2</B > The user may only modify or delete folders that he or she created</P ><P CLASS="listitem" ><B CLASS="phrase" >120.3</B > The user may only modify or delete filters that he or she created</P ><P CLASS="listitem" ><B CLASS="phrase" >120.4</B > The user's mail is not visible to any other user, including all admins </P ></LI ></UL ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="requirements-revision-history" >2.1.10. Revision History</A ></H2 ><DIV CLASS="informaltable" ><A NAME="AEN490" ></A ><TABLE BORDER="1" CLASS="CALSTABLE" CELLPADDING="10" ><THEAD ><TR ><TH ALIGN="CENTER" VALIGN="MIDDLE" >Document Revision #</TH ><TH ALIGN="CENTER" VALIGN="MIDDLE" >Action Taken, Notes</TH ><TH ALIGN="CENTER" VALIGN="MIDDLE" >When?</TH ><TH ALIGN="CENTER" VALIGN="MIDDLE" >By Whom?</TH ></TR ></THEAD ><TBODY ><TR ><TD ALIGN="LEFT" VALIGN="MIDDLE" >0.1</TD ><TD ALIGN="LEFT" VALIGN="MIDDLE" >Creation</TD ><TD ALIGN="LEFT" VALIGN="MIDDLE" >09/04/2000</TD ><TD ALIGN="LEFT" VALIGN="MIDDLE" >Erik Bielefeldt</TD ></TR ><TR ><TD ALIGN="LEFT" VALIGN="MIDDLE" >0.2</TD ><TD ALIGN="LEFT" VALIGN="MIDDLE" >Fixed a few errors and added new features</TD ><TD ALIGN="LEFT" VALIGN="MIDDLE" >11/10/2000</TD ><TD ALIGN="LEFT" VALIGN="MIDDLE" >Erik Bielefeldt</TD ></TR ></TBODY ></TABLE ></DIV ><P ><A HREF="mailto:erik@arsdigita.com" TARGET="_top" >erik@arsdigita.com</A ></P ><P > Last modified: $Date: 2001/04/20 20:51:24 $ </P ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR SIZE="1" NOSHADE="NOSHADE" ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="acs-admin-guide.html" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="design.html" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >ACS Administrator's guide</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Webmail Design Document</TD ></TR ></TABLE ></DIV ></BODY ></HTML >