Electronic mail software includes a main email component and a number of
installable components which communicate bidirectionally with the email
component through an application programming interface (API). The
installable components include authoring/reading components and a mailbox
browser/editor component. The main email component provides an underlying
graphical user interface (GUI) for functions directly associated with the
storage and transfer of electronic mail messages and also handles all
data bundling and unbundling that may be required to transform a message
created by an authoring component into a fully MIME compliant message. In
addition, the main email component includes "hooks" (an application
programming interface or API) for the attachment of the installable
components. The authoring/reading components each provide functionality
particular to the type of document the component is designed to
create/display. Some modular components, or messages created by them,
have assigned "roles" whereby senders and recipients of certain email
documents are provided different kinds of access to the documents.