Abstract:
Electronic mail software includes a main email component and a number installable components. The installable components include authoring/reading components for creating/reading different kinds of documents and mailbox components for listing different kinds of messages or for listing messages in different styles. The main email component provides an underlying graphical user interface for functions directly associated with the storage and transfer of electronic mail messages, and also handles all data bundling and unbundling required to transform a message created by an authoring component into a MIME compliant message. The authoring/reading components act like applications embedded within the email program and allow specific types of documents such as spreadsheets, graphics, databases, etc. to be created from within the email program and emailed directly. The authoring/reading components also allow received documents to be read without the difficulties traditionally associated with attaching binary files to an email letter. The authoring components of the invention pass data to the main email component which packages the data as a MIME compliant message. When the message is received, the main email component concatenates and decodes the MIME message and sends the data to the authoring/reading component associated with the MIME type.

Description:
This invention was made with Government support under SBIR Grants Nos. 9561725 and 9710619 awarded by the National Science Foundation. The Government has certain rights in this invention. 

   BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The invention relates to an electronic mail program. More particularly, the invention relates to an electronic mail program having modular integral authoring/reading applications whereby documents created with the modular integral authoring/reading applications are seamlessly sent and received by the mail program. 
   2. State of the Art 
   In recent years electronic mail (“email”) has become widely used in business, education, and in personal communications. One of the features of electronic mail which is most convenient, particularly in business and in education, is the ability to attach a binary computer file to an email message. This feature enables email correspondents to rapidly share word processing documents, database documents, spreadsheet documents, multimedia documents, or virtually any kind of binary file created by a computer. There are, however, some serious limitations and inconveniences associated with attaching a binary file to an email message. 
   The original Internet mail system as defined in 1982 with RFC (Request for Comments) 821 and 822 had a number of important limitations. In particular, the system was not designed to carry large quantities of arbitrary data in an email message. In fact, the 1982 SMTP (Simple Mail Transport Protocol) standard required that an email message consist of a single message containing only ASCII characters in lines of 1000 characters (blocks of 32 k) or less. Moreover, some implementations of SMTP or other mail transport systems (such as UUCP) restricted message lengths to some allowed maximum number of bytes. Messages passing through a mail gateway using one of these implementations were likely to be truncated. 
   The ability to send large quantities of binary data through the Internet electronic mail system was made possible with the MIME (Multipurpose Internet Mail Extensions) standard for Internet messages. The original MIME standard was published as an Internet Request For Comments document (RFC 1341) and approved in June of 1992. (See Internet RFCs 2045, 2046, and 2047 for the latest MIME standards documents.) The MIME standard describes how an email message should be formatted in order to be considered MIME compliant. MIME defines a set of message header fields and a set of message encoding standards that are designed to overcome the limitations of RFC 822 message formats and still be transportable through any of the numerous legacy mail transport systems in use on the Internet. MIME message header fields extend those defined in RFC 822 and describe the content and encoding type of the email message. Encoding schemes allowed in the MIME standard include “quoted-printable”, and “base64”. In addition, three unencoded data types are allowed. These are labeled “8 bit”, “7 bit”, or “binary”. 
   If the sender and the receiver of the email message with the attached binary file are using the same brand and version of email program and both programs are configured in substantially the same way, the receiver&#39;s email program should automatically apply the appropriate decoding to the attached binary file and produce a file which is identical to the file which was attached to the email by the sender. However, if the sender and receiver are using different email programs, the recipient may receive a file which must be decoded by the recipient using a separate decoding program. Worse yet, if there is a failure of the receiving email program to properly deal with the MIME protocol, it is possible that the receiver will receive multiple files (each being ≦32 k) which must first be concatenated and then decoded. 
   Even after the file is properly received and decoded, it is often difficult for the receiver of the file to open the file. The receiver of the file might expect that “clicking” on the file icon will open the file. However, clicking on the file icon will often not open the file. It may result in an error message like “application not found” or, worse, it may result in the file being opened by an inappropriate application thereby displaying “gibberish”. The receiver of the file must have a program capable of reading (opening) the file. For example, if one attaches a spreadsheet file to an email message, the receiver of the file must have a spreadsheet program in order to open the file. Technically, it is not necessary that the receiver of the file have the same brand program as that which created the file. However, opening a file with a program which did not create it, though possible, can be very inconvenient. The receiver of the file must know what kind of file is attached to the email message, must know what program on their computer is capable of reading that type of file, must launch the program, must open the file from within the program, and wait while the program translates the file. 
   The limitations of Internet electronic mail can become even more frustrating if the sender and recipient are not using the same operating system (OS). Some mail attachment encoding schemes (and file compression schemes) are OS-dependent and it is possible that an email recipient could receive a file which is impossible to decode (or decompress). 
   These limitations in electronic mail have discouraged many people, particularly non-sophisticated computer users, from attaching files to electronic mail messages. In fact, for some novice users, the task of launching one application to create a document, saving the document, launching a separate email application to create an email message, and then locating the saved document for attachment to an email message is daunting enough to discourage them. In addition, novice users often complain that after “downloading” a file attached to an email message they cannot find the file on their hard disk. 
   SUMMARY OF THE INVENTION 
   It is therefore an object of the invention to provide an electronic mail program which includes integrated authoring software whereby a document may be created and sent by email in a seamless manner. 
   It is also an object of the invention to provide an electronic mail program which includes integrated authoring/reading software whereby a document may be received and opened in a seamless manner. 
   It is another object of the invention to provide an electronic mail program which includes modular integrated authoring software whereby different kinds of documents may be created and sent by email in a seamless manner. 
   It is still another object of the invention to provide an electronic mail program which includes modular integrated authoring/reading software whereby different kinds of documents may be received and opened in a seamless manner. 
   It is another object of the invention to provide an electronic mail program which includes modular integrated authoring/reading software whereby the authoring/reading software and the email software present an interface which suggests that a single application is operating. 
   It is another object of the invention to provide an electronic mail program which includes modular integrated mailbox handling software whereby messages of different types are displayed in different ways in a mailbox listing. 
   It is still another object of the invention to provide an electronic mail program which includes modular integrated authoring/reading software wherein the functionality of the authoring/reading software is controlled by the “role” of the user when participating in an exchange of messages. 
   In accord with these objects which will be discussed in detail below, the electronic mail software of the present invention includes a main email component and a number of installable components which communicate bidirectionally with the email component. The installable components include authoring/reading components as well as at least one 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. In particular, the main email component provides menu items which allow the user to SEND, READ, REPLY, FORWARD, DELETE, SAVE, PRINT, for example. The main email program 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 which is particular to the type of document the component is designed to create/display. For example, a text document authoring component includes word processing functionality such as font selection, margin setting, etc. A painting/drawing authoring component includes tools for line drawing, polygon creation, paint brush, paint can, eraser, etc. A spreadsheet authoring component displays a grid and includes formula creation tools as well as formatting tools. A database authoring tool includes tools for creating fields and records, for sorting and searching, for generating reports, etc. A photo editor authoring component includes various imaging editing tools including cropping tools, dodging and burning tools, filters, etc. A presentation authoring component includes tools for creating slides and slide shows. The authoring components act like applications embedded within the email program and allow specific types of documents such as spreadsheets, graphics, databases, etc. to be created from within the email program and emailed directly. In addition, the authoring components allow received spreadsheets, graphics, databases, etc. to be read by the email program without the difficulties traditionally associated with attaching binary files to an email letter. According to the invention, in lieu of authoring components which allow both authoring and reading, separate components may be provided for authoring and reading, or components for reading only may be provided in addition to components which permit authoring as well as reading. The authoring/reading components interface with the main email component via designated “MIME types”. The MIME data standard allows developers to define MIME types using the label “/application-x” in the data header. The authoring components of the invention pass data to the main email component which packages the data as a MIME compliant message with the label “/application-x” in the message header, where x identifies the authoring/reading component which created/can display the message. When the message is received, the main email component concatenates and decodes the MIME message, reads the MIME type, sends the data to the component associated with the MIME type, and waits for a user event or a callback from the component. This bidirectional communication between the main email component and the authoring/reading components provides a totally seamless operation wherein the user may send and receive complex documents without any knowledge of attaching files, downloading, decoding, etc. 
   The mailbox browser/editor (mailbox handler) component is provided preferably as a separate component rather than as part of the main email component so that the software may be more easily customized and upgraded. The mailbox browser/editor component is used to display, edit, and browse mailboxes. Since the invention provides for email messages which contain different kinds of data, the features of the mailbox browser may depend on the type of messages being sent and received. For example, if a graphical authoring/reading component is installed, it may be desirable to provide a mailbox browser which shows a thumbnail of the selected graphic email message when a list of messages is displayed. 
   The software according to the invention provides a single seamless environment for authoring, reading, and emailing a variety of different types of documents. The user does not need to understand uploading, downloading, file types, file decoding, or any of the other esoteric requirements of attaching files to email. Further, the user does not need to know what kind of application must be launched in order to read a particular type of email message. 
   An exemplary embodiment of the invention is an email program for school children called KIDCODE®. The KIDCODE® program includes a main email component, a mailbox browser/editor component and several message authoring/reading components. The main email component and the mailbox browser/editor component provide the same functionality as described above. Additional KIDCODE® components include a text authoring tool, rebus game message handler components (encoding and decoding components) which allow children to create and respond to graphical rebus messages, several different game puzzle components, and a workbook which allows a teacher to send workbook problems to a student and allows the student to send the solved problems back to the teacher. According to one inventive aspect of the invention which is exemplified in the workbook and rebus components, an authoring/reading component may assign and track user “roles” by associating a role tag to each message. For example, in the rebus component, the user initiating the rebus exchange will be assigned the role of rebus encoder. The message created by this user will contain a tag identifying it as an “encoded message”. When the message is opened by the recipient, the tools available in the rebus component will be different from those available if a message were being encoded. Similarly, the workbook component is preferably provided with a teacher role and a student role, each of which have different tools. Component roles may be selected by the users, assigned by the system administrator, or automatically by components when messages are created/read. 
   According to a presently preferred embodiment, the KIDCODE® client software is written in the MACROMEDIA DIRECTOR™ LINGO™ scripting language which is cross-platform and thus ideally suited for use in schools which typically have a combination of MAC/OS™ and WINDOWS™ computers. As implemented, the client software operates over a TCP/IP LAN which is the most common type of network used in schools today and is compatible with the Internet. According to a further implementation of the invention, KIDCODE® software permits messages to be sent via the Internet in MIME compliant format. 
   Additional objects and advantages of the invention will become apparent to those skilled in the art upon reference to the detailed description taken in conjunction with the provided figures. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a screen shot of the KIDCODE® client login screen; 
       FIG. 1   a  is a simplified state diagram illustrating the entry from the login screen to the main email component of the KIDCODE® software; 
       FIG. 2  is a screen shot of the KIDCODE® main email component screen showing a menu of the installed authoring/display components and the mailbox browser component; 
       FIG. 2   a  is a simplified state diagram illustrating the entry from the main email component into the installed components; 
       FIG. 3  is a screen shot of the KIDCODE® mailbox browser/editor component screen; 
       FIG. 4  is a screen shot of the KIDCODE® text message authoring component screen; 
       FIG. 5  is a screen shot of the KIDCODE® rebus authoring (encoding) component screen; 
       FIG. 6  is a screen shot similar to  FIG. 5  illustrating a listbox of users on the network to whom mail may be sent; 
       FIG. 7  is a screen shot similar to  FIG. 5  illustrating a rebus in the process of being coded by the user; 
       FIG. 8  is a screen shot of the KIDCODE® rebus reading (decoding) component screen; 
       FIG. 9  is a screen shot of the KIDCODE® workbook authoring component screen; 
       FIG. 10  is a screen shot illustrating the main email component of a second embodiment of the invention; 
       FIG. 11  is a screen shot illustrating a text authoring component in the second embodiment of the invention; 
       FIG. 12  is a screen shot illustrating a painting/drawing authoring component in the second embodiment of the invention; 
       FIG. 13  is a screen shot illustrating a spreadsheet authoring component in the second embodiment of the invention; 
       FIG. 14  is a screen shot illustrating a database authoring component in the second embodiment of the invention; 
       FIG. 15  is a screen shot illustrating a photo editor authoring component in the second embodiment of the invention; 
       FIG. 16  is a screen shot illustrating a slide show authoring component in the second embodiment of the invention; and 
       FIG. 17  is a screen shot illustrating a display-only component in the second embodiment of the invention. 
   

   BRIEF DESCRIPTION OF THE APPENDICES 
   Appendix A is the LINGO™ script implementation of the KIDCODE® main email component; 
   Appendix B is the LINGO™ script implementation of the KIDCODE® mailbox handler component; 
   Appendix C is the LINGO™ script implementation of the KIDCODE® text authoring/displaying component; 
   Appendix D is the LINGO™ script implementation of the KIDCODE® rebus game coding/decoding component; 
   Appendix E is a description of the Application Programming Interface for the KIDCODE® main email component which enables installable components to operate with the main email component; and 
   Appendix F is a description of and pseudocode for the Internet implementation of the KIDCODE® software. 
   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   As mentioned above, a presently implemented embodiment of the invention is realized utilizing the MACROMEDIA DIRECTOR LINGO™ scripting language. The DIRECTOR™ application was originally intended to be used for authoring interactive multimedia presentations. Therefore, many of the terms used in the LINGO language refer to multimedia objects such as movies, cast members, frames, and sprites. However, it has been found that the LINGO™ language can be used to author many different types of programs including programs which were not traditionally thought of as being multimedia presentation programs. The following description, therefore, of the presently implemented embodiment will be best understood by those familiar with the MACROMEDIA DIRECTOR LINGO™ scripting language. However, those skilled in the art will understand from the functional description which follows that the invention could be implemented in other languages such as C or C++, JAVA™, etc. 
   Referring now to  FIGS. 1 and 1   a , and with reference to Appendix A, the first screen  10  presented by the KIDCODE® program is preferably a login screen where the user enters his or her name and password. According to the presently preferred embodiment, the login name field  12  is implemented as a popup menu (or pull down list box) and the password field  14  is a standard text entry field. See, for example, lines 172–190 of Appendix A. Clicking on the login name field will make a list of names appear and allow the user to highlight one of the names using the mouse. After the user has selected a name and typed in a password, the Okay button  16  must be clicked, or the Return or Enter key may be pressed. See Appendix A, lines 796–846 and lines 879–899. At this screen  10 , the only option available under the FILE menu is QUIT. According to the presently preferred embodiment, the usernames and passwords are stored in associative (two property) lists so that a password may be associated with a username and a username may be associated with a password. When the okay button is clicked, the software checks the validity of the username and password. The checking of the username and password is illustrated in the state diagram in  FIG. 1   a . Starting at  20  in  FIG. 1   a , if the user selects a username and clicks the okay button, the password field is checked at  22 . If no password was entered, a popup message is displayed at  24  indicating to the user that a password must be entered and the system returns to start at  20  waiting for the user to click the okay button. If the user types in a password and clicks the okay button, the username field is checked at  26 . If no username was selected, a popup message is displayed at  24  indicating that a username must be selected and the system returns to start at  20  waiting for the user to click the okay button. If the user types in a password and selects a username, it is determined at  28  or  30  whether the username and password match, and if they do, the software enters to the main email component at  32 . If the username and password do not match, a popup message is displayed at  34  indicating that the password entered is invalid for the username selected and the system returns to start at  20  waiting for the user to click the okay button. If the username and password are that of the system administrator, a special administration display will be shown in which usernames and passwords may be added/deleted to/from the system. See Appendix A lines 858–875, 900–1016, and 1123–1140. 
   Turning now to  FIGS. 2 and 2   a , once the user has selected a username and entered the correct password, the program displays the screen  40  shown in  FIG. 2  (Appendix A lines 851–855). This is the screen of the main email component with no other component selected. The screen  40  includes a scrollable collection of icons  42 ,  44 ,  46 ,  48 ,  50  and includes buttons  52 ,  54 ,  56  for mailbox access and button  58  to quit the program. The icons  42 ,  44 ,  46 ,  48 , and  50  represent the installed authoring/reading components. As shown in  FIG. 2 , the icons represent a text component  42 , a rebus component  44 , a “text in grid” component  46 , a puzzle component  48 , and a “connect the dots” component  50 . As illustrated in  FIG. 2   a , starting at  60 , if the user clicks on the text icon, the program will, at  62 , open the text authoring component with an empty message (Appendix A lines 1422–1438 and 1025–1054). Similarly, if the user clicks on the rebus icon, the program will, at  64 , open the rebus authoring component with an empty message (Appendix A lines 1442–1458 and 1025–1054). The main email component will also, when an authoring component is opened, make the print, trash, and send buttons visible as these functions are served by the main email component as illustrated in  FIG. 2   a  (Appendix A lines 489–526 and 1456). Since the presently implemented example does not yet have all components complete, the launching of other components is shown generically at  66  in  FIG. 2   a . When a component is launched, the main email program suspends execution at  68  awaiting any “call back” from the launched component. The API described in Appendix E includes a set of “call back” functions that can be used by an authoring or mailbox component to communicate with the main email component. See Appendix E pages 4–7 and Appendix A lines 557–744. Further, the main email component serves the email functions of inbox, outbox, and filing cabinet for messages that have not been sent. These functions are illustrated in  FIG. 2  as buttons  52 ,  54 ,  56  and in  FIG. 2   a  as routines  72 ,  74 ,  76 . 
   For example, as shown in  FIG. 3 , when the user enters the inbox, a window  78  and a button bar  80  are displayed. The mailbox component with the appropriate set of messages is launched as shown in Appendix A lines 1533–1558 and 216–247). The window  78  displays a list of new email and the button bar  80  displays buttons for functions common to all components, i.e. buttons for reply  82 , send  84 , print  86 , and trash  88 . It will be understood that depending on whether the user is in an authoring or reading mode, either the reply button  82  or the send button  84  will be “grayed out” indicating that that option is not available. As shown in  FIG. 3 , for example, the send button  84  is not available when looking at the mail inbox. It will also be appreciated that the buttons and icons from the previous screen ( FIG. 2 ) are no longer visible. As stated in  FIG. 2   a , the user returns to the screen of  FIG. 2  when the window  78  is closed. Appendix B lines 440–448 and Appendix A lines 735–744. 
   The presently implemented text authoring/reading component is illustrated in the authoring mode in  FIG. 4  and is described in detail in Appendix C. The window  90  is similar to any email message authoring tool and includes fields for “to:”  92 , “from:”  94 , “date”  96 , “subject”  98 , and “message”  100 . The “from:” field  94  and “date” field  96  are hidden in  FIG. 4  behind the scrollable list box  102 . After the addressee is chosen from the list box  102 , the box disappears and reveals the “from” and “date” fields. According to the presently preferred embodiment, the list box  102  lists the names of all of the users registered in the local email system. This is handled by a call to the API as indicated at Appendix A lines 726–731 and implemented at Appendix C lines 55–68. Thus, this embodiment prevents users from sending a document to a recipient who is not registered with the system administrator. It also allows users of the system to address messages without typing the recipient&#39;s name. According to another embodiment of the invention, shown and described below with reference to  FIG. 10 , users are permitted to send email to any internet address and a list box is optionally used to display an address book. As seen in  FIG. 3 , the reply button  82  in the button bar  80  is grayed out because that function is not available when authoring a text message. This is accomplished in Appendix A at lines 1422–1438. 
     FIGS. 5–8  illustrate the presently implemented rebus component which is described in detail in Appendix D. The rebus component presents a window  104  which includes a “to:” field  106 , a message area  108 , a “T” button  110  for selecting a template sentence, an “S” button  112  for hiding/displaying symbols, a button  114  for hiding/displaying guesses, and a scrollable area  116  to the right of the message area which displays sets of symbols to be used in coding a rebus. In addition, the rebus component displays several pull down menus which are particular to it. These include the template choices menu  118  and the symbol choices menu  120 . 
   According to the presently implemented embodiment which is detailed in Appendix D, the author of a rebus begins by selecting a template sentence from a selection of sentences which are capable of being expressed as a rebus using the symbol sets provided. The template selection may be made via the T button  110  or the pull down menu  118 . When a template sentence is selected, a suggested set of symbols is displayed in the field  116 . Different symbols may be viewed by selecting a symbol set from the Symbol Choices menu  120 . As illustrated in  FIG. 8 , symbols are grouped according to the kinds of words they symbolize such as “action symbols”, “object symbols”, “quantity symbols”, etc. As with other components of the KIDCODE® program, and as shown in  FIG. 6 , the “to:” field  106  presents a drop down or pop up list box through which the email is addressed by selecting a registered user. 
   The author of the rebus codes the template sentence by dragging symbols from the scrollable field  116  to the message area  108 . This is best illustrated by  FIG. 7 . Symbols, when placed on a coded word in the template sentence, will snap into place when they are dragged into the area  108 . According to the invention, not every word in the template sentence is designed to be coded with a symbol. According to the presently preferred embodiment, words which are to be coded appear in red text. For example, as shown in  FIG. 7 , two symbols have been dragged into the message area and have snapped over the now hidden words “threw” and “window”. The words “ball and “through” are also red text and can be coded with a proper symbol. The author can hide the symbols and display the words in the sentence which are covered by symbols by clicking on the “S” button  112 . (Appendix D lines 2433–2451 and 1348–1349.) However, when the recipient receives the rebus, clicking on the button “S” will not reveal the words beneath the symbols, but will only make the symbols disappear. This is an example of how user “roles” alter the tools available in a component. See Appendix D lines 1351–1365. When the author finishes coding the rebus, he or she clicks on the send button  84 . The main email component then automatically encodes the rebus as a MIME attachment to Internet mail and sends the mail to the recipient&#39;s mailbox. See Appendix F. 
   Turning now to  FIG. 8 , when the recipient of the rebus opens the email message containing a rebus, the KIDCODE® main email component automatically decodes the MIME attachment, determines that it is a rebus, and opens it in the rebus reading component. See Appendix F. The message appears with empty text boxes (e.g.  122 ,  124 ,  126 ) beneath the graphic symbols. The recipient of the message must solve the rebus by typing in the text boxes the words which he/she believes are represented by the graphic symbols. As mentioned above, the “−” button  114  is for hiding/displaying the guesses typed in the boxes. When the recipient has typed in words for all the graphic symbols, he/she clicks on the reply button  82  to send the solution back to the author.  FIG. 8  shows the screen after the button  82  has been clicked. Thus it is grayed out to prevent the same message from being sent twice. The palette  116  is available to the decoder for browsing only. The features which allow symbols to be placed on the message are disabled for the decoder. 
   One of the authoring/reading components of the invention is a workbook message handler, an example of which is illustrated in  FIG. 9 . The screen shot shown in  FIG. 9  illustrates the “student role” of a workbook message handler. The window  130  of the student role workbook message handler preferably includes “to:” and “from:” fields  132 ,  134  which are filled in by the teacher before the message is sent to the student, as well as six fields  136 ,  138 ,  140 ,  142 ,  144 ,  146  which must be filled in by the student before the message is returned to the teacher. As shown in  FIG. 9 , the window  130  also includes a title  148 , a date  150  and various instructions  152 . Those skilled in the art will appreciate that the date  150  may be automatically entered when the message is sent to the student. The fields  136 ,  138 ,  140 ,  142 ,  144 ,  146 , the title  148 , and the instructions  152  may be manually entered by the teacher or may be selected as part of a template. In other words, the workbook message handler component may be a complex tool which allows teachers to author an infinite number of “problem messages” to students or it may be a modular set of pre-written problems or templates for problems. The workbook message handler component preferably includes many pre-written problems. Additional pre-written problems will be available through additional modular components. One important feature of the workbook message handler components is that they identify user status and automatically present the proper “role” of either teacher or student. 
   The KIDCODE® program described above is designed to be easy to use by very young children.  FIGS. 10–17  illustrate another embodiment of the invention which is designed for a more sophisticated user, an older child, or an adult. The interface is more complicated, but offers the user more features. Referring now to  FIG. 10 , the interface of the second embodiment of the invention includes a menubar  200  which lists some standard menus like FILE, EDIT, SETUP, WINDOW, and HELP. The menubar  200  may also include a clock display  202  which is typically supplied by the operating system and a blinking icon  204  which is typically supplied by TCP/IP connection software such as PPP dialup software, to indicate that the computer is connected to the Internet. The menus MAIL and FOLDER in the menubar  200  are particular to the emailing program and the scroll icon  206  is provided by scripting software, typically part of the operating system. Under the MAIL menu, one will find commands such as NEW for creating new mail, REPLY for replying to a mail message being read, FORWARD, etc. Under the FOLDER menu, one will find the names of user created filing cabinets (folders) where incoming mail can be saved. Under the SETUP menu, one will find commands for setting the necessary information to make a connection with the Internet, for storing the user&#39;s name and password, for scheduling automatic sending and receiving of mail, for performing automated tasks in response to mail (e.g. for automatically filing certain mail in certain folders, autoresponding to certain mail, etc.), etc. Under the WINDOW menu, the user will have the option of viewing INBOX, OUTBOX, FILING CABINET(s), CONNECTION STATUS, etc. The HELP menu preferably provides a context sensitive alphabetical list of help items which are hot linked to html files. 
     FIG. 10  illustrates the email program with a new outgoing message window  208  opened. The message window includes a standard text message field  210 , a standard subject field  212 , standard multiple recipient address fields  214 , and a variety of buttons. The arrow buttons  216  allow the user to scroll among messages in the outbox. The outbox button  218  drops down a list of items in the outbox, from which items may be selected. The magnifying glass button  220  is used to search the user&#39;s address book. The “+” button  222  adds a recipient to the address field  214 . The trash button  224  places the outgoing message in the trash and closes the window  208 . The clock button  226  brings up a menu to schedule when the message will be sent. The rotating arrow button  227  causes the address fields  214  to disappear/reappear thereby expanding/contracting the size of the message field  210 . The send button  228  sends the message to the outbox (if it is scheduled for delivery at another time or if the computer is not connected to the Internet) and sends the message otherwise. The button  230  labelled “           ^-K” causes the computer to connect to the Internet. As shown in  FIG. 10 , this button  230  is grayed out because, as indicated by the blinking telephone pole icon  204 , the computer is already connected to the Internet. The “send via” button  232  allows the user to select from several usernames, email accounts, etc.
   The outgoing message window  208  shown in  FIG. 10  allows the user to send standard Internet mail by typing a message in the window  210 . However, according to the invention, the window  208  also includes buttons  234 ,  236 ,  238 ,  240 ,  242 , and  244 , each of which is linked to an installed authoring/reading component. As described above, the number and nature of the authoring/reading components is modularly changeable. In the example shown in  FIG. 10 , six authoring/reading components are shown to be installed. In practice, more, fewer, and/or different components may be installed. The components shown and described herein are: a word processor authoring/reading component linked to the button  234 , a painting/drawing authoring/reading component linked to the button  236 , a spreadsheet authoring/reading component linked to the button  238 , a database authoring/reading component linked to the button  240 , an image editor authoring/reading component linked to the button  242 , and a presentation authoring/reading component linked to the button  244 . 
   Turning now to  FIG. 11 , when the user clicks on the button  234 , the word processor component is invoked and it causes a new menubar  250  and a ruler  252  to appear inside the message field  210  of the window  208 . The word processor component allows sophisticated formatting of messages which would be impossible in a normal Internet email program. For example, margins can be set using the ruler  252 ; fonts can be changed using the FONT menu from the menubar  250 ; tables can be created and inserted using the TABLE menu from the menubar  250 . In general, the menubar  250  provides much or all of the functionality of a full featured word processor program. Those skilled in the art will appreciate that the word processor interface shown in  FIG. 11  is similar to the interface of Microsoft® Word® 98. It will be noted that the menubar  250  provides a separate HELP menu in addition to the HELP menu provided on the menubar  200 . It will be appreciated that the HELP menu could be omitted from the menubar  250  and the help files for the word processor component could be accessed from the main HELP menu on the menubar  200 . It will also be noted that when the word processor component is invoked, the button  234  is grayed. 
   After a user creates a message with the word processor component, the addressing and mailing procedure is the same as sending an ordinary email. There is no need to save a file, encode it, or attach it to an email message. The main email component of the invention seamlessly performs all of the saving, encoding, and attaching without any of this being exposed to the user. More particularly, the authoring component and the main email component cooperate to save the authored document as a file on the user&#39;s disk. See Appendix E lines 229–238 and Appendix A lines 1293–1333 and 329–450. The main email component encodes the file in the MIME format with as many parts as necessary, and sends the MIME file(s) as Internet email message(s). See Appendix F. When the message is received by a person using a copy of the email program of the invention, the receiver&#39;s main email component seamlessly concatenates the MIME parts, decodes the MIME file (Appendix F), determines that it is a message created with the word processing component (Appendix A lines 690–694), invokes the word processing component (Appendix A lines 1019–1054), and opens the message with the word processing component (Appendix A lines 603–614). The receiver of the message does not have to download any file, find any attachment, execute any decoders, or launch any word processor to see the fully formatted document created by the sender. 
   Turning now to  FIG. 12 , when the user clicks on the button  236 , the painting/drawing component is invoked and it causes a new menubar  260  and a tool palette  262  to appear inside the message field  210  of the window  208 . The painting/drawing component allows the author to create a painting (bitmap) graphic or a drawing (vectormap) graphic and send it to another user for viewing/editing. Those skilled in the art will appreciate that the menubar  260  and palette  262  shown in  FIG. 12  contain the menus and tool icons typically found in a full featured drawing/painting program. Those skilled in the art will appreciate that the painting/drawing component interface shown in  FIG. 12  is similar to the interface of Aldus® SuperPaint® 3.5. It will be noted that the menubar  260  provides a separate HELP menu in addition to the HELP menu provided on the menubar  200 . It will be appreciated that the HELP menu could be omitted from the menubar  260  and the help files for the painting/drawing component could be accessed from the main HELP menu on the menubar  200 . It will also be noted that when the painting/drawing component is invoked, the button  236  is grayed. 
   After a user creates a graphic image with the painting/drawing component, the addressing and mailing procedure is the same as sending an ordinary email. There is no need to save a file, encode it, or attach it to an email message. The main email component of the invention seamlessly performs all of the saving, encoding, and attaching without any of this being exposed to the user. See Appendices A, E and F. When the message is received by a person using a copy of the email program of the invention, the receiver&#39;s main email component seamlessly concatenates MIME parts, decodes the MIME file, determines that it is a message created with the painting/drawing component, invokes the painting/drawing component, and opens the message with the painting/drawing component. The receiver of the message does not have to download any file, find any attachment, execute any decoders, or launch any painting/drawing program to view/edit the graphic image created by the sender. See Appendices A, E and F. 
   Turning now to  FIG. 13 , when the user clicks on the button  238 , the spreadsheet component is invoked and it causes a new menubar  270 , a grid  272 , and a tool palette  274  to appear inside the message field  210  of the window  208 . The spreadsheet component allows the author to create a spreadsheet and send it to another user for viewing/editing. Those skilled in the art will appreciate that the menubar  270  and palette  274  shown in  FIG. 13  contain the menus and tool icons typically found in a full featured spreadsheet program. Those skilled in the art will appreciate that the interface of the spreadsheet component shown in  FIG. 13  is similar to the interface of Microsoft® Excel® 98. It will be noted that the menubar  270  provides a separate HELP menu in addition to the HELP menu provided on the menubar  200 . It will be appreciated that the HELP menu could be omitted from the menubar  270  and the help files for the spreadsheet component could be accessed from the main HELP menu on the menubar  200 . It will also be noted that when the spreadsheet component is invoked, the button  238  is grayed. 
   After a user creates a spreadsheet with the spreadsheet component, the addressing and mailing procedure is the same as sending an ordinary email. There is no need to save a file, encode it, or attach it to an email message. The main email component of the invention seamlessly performs all of the saving, encoding, and attaching without any of this being exposed to the user. See Appendices A, E and F. When the message is received by a person using a copy of the email program of the invention, the receiver&#39;s main email component seamlessly concatenates MIME parts, decodes the MIME file, determines that it is a message created with the spreadsheet component, invokes the spreadsheet component, and opens the message with the spreadsheet component. The receiver of the message does not have to download any file, find any attachment, execute any decoders, or launch any spreadsheet program to view/edit the spreadsheet created by the sender. See Appendices A, E and F. 
   Turning now to  FIG. 14 , when the user clicks on the button  240 , the database component is invoked and it causes a new menubar  280 , a record selection tool  282 , and a free form space  284  to appear inside the message field  210  of the window  208 . The database component allows the author to create a database and one or more reports and forms associated with the database and send it to another user for viewing/editing. Those skilled in the art will appreciate that the button bar  286  and the data fields  288  are defined by the author of the database using authoring tools found in the menus of the menubar  280 . In fact, those skilled in the art will appreciate that the database interface shown in  FIG. 14  is similar to the interface of Filemaker®Pro 3.0. It will be noted that the menubar  280  provides a separate HELP menu in addition to the HELP menu provided on the menubar  200 . It will be appreciated that the HELP menu could be omitted from the menubar  280  and the help files for the database component could be accessed from the main HELP menu on the menubar  200 . It will also be noted that when the database component is invoked, the button  240  is grayed. 
   After a user creates a database with the database component, the addressing and mailing procedure is the same as sending an ordinary email. There is no need to save a file, encode it, or attach it to an email message. The main email component of the invention seamlessly performs all of the saving, encoding, and attaching without any of this being exposed to the user. See Appendices A, E, and F. When the message is received by a person using a copy of the email program of the invention, the receiver&#39;s main email component seamlessly concatenates MIME parts, decodes the MIME file, determines that it is a message created with the database component, invokes the database component, and opens the message with the database component. The receiver of the message does not have to download any file, find any attachment, execute any decoders, or launch any database program to view/edit the database created by the sender. See Appendices A, E, and F. 
   Turning now to  FIG. 15 , when the user clicks on the button  242 , the image editing component is invoked and it causes a new menubar  290  and a floating tool palette  292  to appear inside the message field  210  of the window  208 . The image editing component allows the author to edit an image and send it to another user for viewing and/or further editing. Those skilled in the art will appreciate that the menubar  290  and palette  292  shown in  FIG. 15  contain the menus and tool icons typically found in a full featured image editing program. Those skilled in the art will appreciate that the interface of the image editing component shown in  FIG. 15  is similar to the interface of Adobe® Photoshop® 3.5. It will be noted that the menubar  290  provides a separate HELP menu in addition to the HELP menu provided on the menubar  200 . It will be appreciated that the HELP menu could be omitted from the menubar  290  and the help files for the database component could be accessed from the main HELP menu on the menubar  200 . It will also be noted that when the database component is invoked, the button  242  is grayed. Those skilled in the art will appreciate that image editing software is typically not used to create an image but to edit an image created by some other hardware/software such as a digital camera or a scanner. As such, there is typically a menu item for opening or capturing an image. As shown in  FIG. 15 , open/capture commands may be found under the FILE menu in the menubar  200 . Alternatively, image acquisition commands may be found under a menu item in the menubar  290 . 
   After a user edits an image with the image editor component, the addressing and mailing procedure is the same as sending an ordinary email. There is no need to save a file, encode it, or attach it to an email message. The main email component of the invention seamlessly performs all of the saving, encoding, and attaching without any of this being exposed to the user. See Appendices A, E, and F. When the message is received by a person using a copy of the email program of the invention, the receiver&#39;s main email component seamlessly concatenates MIME parts, decodes the MIME file, determines that it is a message created with the image editor component, invokes the image editor component, and opens the message with the image editor component. The receiver of the message does not have to download any file, find any attachment, execute any decoders, or launch any image editor program to view/edit the image edited by the sender. See Appendices A, E, and F. 
   Turning now to  FIG. 16 , when the user clicks on the button  244 , the presentation (slide show) component is invoked and it causes a new menubar  300 , a floating wizard palette  302 , and a blank template  304  to appear inside the message field  210  of the window  208 . The presentation component allows the author to create a slide show presentation and send it to another user for viewing and/or editing. Those skilled in the art will appreciate that the menubar  300 , palette  302 , and template  304  shown in  FIG. 16  are typical of those found in a full featured presentation program. In fact, those skilled in the art will appreciate that the interface of the presentation component shown in  FIG. 16  is similar to the interface of Microsoft® PowerPoint® 98. It will be noted that the menubar  300  provides a separate HELP menu in addition to the HELP menu provided on the menubar  200 . It will be appreciated that the HELP menu could be omitted from the menubar  290  and the help files for the database component could be accessed from the main HELP menu on the menubar  200 . It will also be noted that when the database component is invoked, the button  244  is grayed. 
   After a user creates a presentation with the presentation component, the addressing and mailing procedure is the same as sending an ordinary email. There is no need to save a file, encode it, or attach it to an email message. The main email component of the invention seamlessly performs all of the saving, encoding, and attaching without any of this being exposed to the user. See Appendices A, E, and F. When the message is received by a person using a copy of the email program of the invention, the receiver&#39;s main email component seamlessly concatenates MIME parts, decodes the MIME file, determines that it is a message created with the presentation component, invokes the presentation component, and opens the message with the presentation component. The receiver of the message does not have to download any file, find any attachment, execute any decoders, or launch any presentation program to view/edit the presentation created by the sender. See Appendices A, E, and F. 
   As described above, messages received by the email software according to the invention are seamlessly decoded and displayed.  FIG. 17  illustrates an incoming message window  408  which displays a message containing a combination of text and graphics in the message field  410 . The incoming message window  408  also includes a subject field  412  and a “from:” address field  414  which includes information about the time the message was sent and received. Arrow buttons  416  allow the user to scroll through messages in the “in box”. Button  418  drops a menu list of messages in the in box from which a message may be selected. The “+” button  420  adds the sender&#39;s address to the recipient&#39;s address book. The rotating arrow  427  hides the address field  414  and expands the message field  410 . Buttons  428  and  430  are not implemented, but may be used for public key decryption, etc. 
   As mentioned above, the modular components of the invention may be authoring/reading components or read only components.  FIG. 17  illustrates an incoming message window  408  which displays a message containing a combination of text and graphics in message field  410  without any editing/authoring tools. The message may have been created with the word processing component or the painting and drawing component. The component used to create the message need not be known by the recipient of the message when it is opened with a read only component as shown. It will be appreciated that the message could also be automatically opened with an authoring/reading component, in which case, the message field  410  in  FIG. 17  would also include a menubar, and perhaps a tool palette. According to the invention, the email client software may be provided with a full complement of read only components and the authoring components may be installed according to the user&#39;s choices. Additionally, the email client software may be programmed to automatically download a reading component from an ftp site when it encounters a message which requires a component which is not yet installed. 
   There have been described and illustrated herein several embodiments of electronic mail software with modular integrated authoring/reading software components. While particular embodiments of the invention have been described, it is not intended that the invention be limited thereto, as it is intended that the invention be as broad in scope as the art will allow and that the specification be read likewise. Thus, while particular graphical interfaces have been disclosed, it will be appreciated that other interfaces could be utilized. Also, while particular authoring/reading components have been shown, it will be recognized that other types of authoring/reading components could be provided in the spirit of the invention. Moreover, while particular configurations have been disclosed in reference to the code in the appendices, it will be appreciated that other configurations could be used as well. Further, while particular software code and pseudocode have been disclosed to perform various functions, it will be appreciated that other code and/or hardware could be utilized to accomplish those functions and should be considered the equivalents thereof. It will therefore be appreciated by those skilled in the art that yet other modifications could be made to the provided invention without deviating from its spirit and scope as so claimed.