# Patent

## Title
Electronic mail software with modular integrated authoring/reading software components

## 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.

## Background
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'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 DIRECTORTM LINGOTM scripting language which is cross-platform and thus ideally suited for use in schools which typically have a combination of MAC/OSTM and WINDOWSTM 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. 1a 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. 2a 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 LINGOTM script implementation of the KIDCODE® main email component;
Appendix B is the LINGOTM script implementation of the KIDCODE® mailbox handler component;
Appendix C is the LINGOTM script implementation of the KIDCODE® text authoring/displaying component;
Appendix D is the LINGOTM 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 LINGOTM scripting language. The DIRECTORTM 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 LINGOTM 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 LINGOTM 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++, JAVATM, etc.
Referring now to FIGS. 1 and 1a, 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. 1a. Starting at 20 in FIG. 1a, 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 2a, 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. 2a, 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. 2a (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. 2a. 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. 2a 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. 2a, 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'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'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'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'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'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'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'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'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'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'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'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's address to the recipient'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'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.

## Claims

1. An electronic mail client embodied in an executable computer-readable medium, comprising:
a) a plurality of authoring and reading components, a first of said plurality of authoring components for creating a representation of a document including an other than text portion and for creating the other than text portion of the document;
b) encoding means for automatically encoding said representation created with said authoring components into an Internet-compatible email message; and
c) decoding means for automatically decoding said representation encoded by said encoding means, wherein
said encoding means and said decoding means communicate bidirectionally with said authoring components.

2. An electronic mail client according to claim 1, wherein:
said plurality of authoring components include at least one installable component.

3. An electronic mail client according to claim 1, wherein:
said plurality of authoring components includes at least one component selected from the group consisting of a game component, a spreadsheet component, and a graphic editor component wherein at least two of said authoring components provide user interfaces different from each other.

4. An electronic mail client according to claim 1, wherein:
said plurality of authoring components includes at least one component selected from the group consisting of a database component, a presentation component, and a puzzle component.

5. An electronic mail client according to claim 1, wherein:
said encoding means includes MIME-compatible encoding means.

6. An electronic mail client according to claim 1, wherein:
said encoding means includes means for creating a MIME file and means for creating a multipart MIME message,
each of said authoring component cooperating with said encoding means such that a creation of said MIME file and said multipart MIME message is transparent to a user.

7. An electronic mail client according to claim 6, wherein:
said decoding means includes means for concatenating a multipart MIME message and means for decoding a MIME file,
each of said authoring component cooperating with said decoding means such that a concatenation of said multipart MIME message and said decoding of MIME files is transparent to the user.

8. An electronic mail client according to claim 1, further comprising:
d) a plurality of installable mailbox/browser components, each of said mailbox/browser components displaying different types of documents in a user's mailbox.

9. An electronic mail client according to claim 1, further comprising:
d) a plurality of installable mailbox/browser components, each of said mailbox/browser components displaying mailbox contents in a different style.

10. An electronic mail client according to claim 1, wherein:
at least one of said authoring components includes means for recognizing whether a user is an author or a reader and for responding differently to authors and readers.

11. An electronic mail client according to claim 1, wherein:
at least one of said authoring components includes means for allowing a user to create a read-only document.

12. An electronic mail client for a student and a teacher embodied in an executable computer-readable medium, comprising:
a) a plurality of authoring components, a first of said plurality of authoring components for creating a representation of a text document and a second of said plurality of authoring components for creating a representation of a document including other than text;
b) encoding means for automatically encoding representations created with said authoring components into an email message; and
c) decoding means for automatically decoding said representations encoded with said encoding means, wherein
at least one of said authoring components includes means for determining whether the user is the student or the teacher.

13. An electronic mail client according to claim 12, wherein:
said plurality of authoring components include at least one installable component.

14. An electronic mail client according to claim 12, wherein:
said plurality of authoring components includes at least one component selected from the group consisting of a game component, a workbook component, and a graphic editor component.

15. An electronic mail client according to claim 12, wherein:
said plurality of authoring components includes at least one component selected from the group consisting of a database component, a presentation component, and a puzzle component.

16. An electronic mail client according to claim 12, wherein:
said encoding means includes MIME-compatible encoding means.

17. An electronic mail client according to claim 12, wherein:
said encoding means includes means for creating a MIME file and means for creating a multipart MIME message,
each of said authoring components cooperating with said encoding means such that a creation of said MIME file and said multipart MIME message is transparent to the student and the teacher.

18. An electronic mail client according to claim 17, wherein:
said decoding means includes means for concatenating a multipart MIME message and means for decoding a MIME file,
each of said authoring component cooperating with said decoding means such that a concatenation of said multipart MIME message and said decoding of MIME files is transparent to a user.

19. A method of authoring a document and sending it by electronic mail, said method comprising:
a) providing a document-authoring component which authors a portion of a document which is other than a plain-text;
b) providing a document-encoding component which encodes the document as Internet-compatible email;
c) linking the document-authoring component with the document encoding component such that documents generated under said document-authoring component are automatically encoded as Internet-compatible email.

20. A method according to claim 19, wherein:
said step of providing a document-authoring component includes providing a plurality of document-authoring components, and said step of linking includes linking each of said document authoring components with the document-encoding component.

21. A method according to claim 19, further comprising:
d) providing a document-decoding component which decodes a received document encoded as Internet-compatible email;
c) linking the document-authoring component with the document decoding component such that documents are automatically decoded.

22. A method according to claim 21, wherein:
the document-decoding component includes means for concatenating a multipart MIME message and means for decoding a MIME file.

23. A method according to claim 19, wherein:
the document-encoding component includes means for creating a MIME file and means for creating a multipart MIME message.

24. An electronic mail client, comprising:
a) a plurality of authoring and reading components, each authoring component for creating a different kind of email message;
b) encoding means for automatically encoding email messages created with said authoring components into an Internet-compatible email message with said email message including a message type identifier; and
c) decoding means for automatically decoding said email messages encoded by said encoding means, wherein
said message type identifier is used to determine which reading component is used to read a decoded email message.

25. An electronic mail client, comprising:
a) a plurality of authoring and reading components for authoring and reading different kinds of documents including documents which have content that is not plain text;
b) encoding means for automatically encoding said documents created with said authoring components into an Internet-compatible email messages;
c) decoding means for automatically decoding said documents encoded by said encoding means; and
d) means for determining which of said plurality of reading components are needed to read said documents, wherein
said means for determining automatically opens documents with the reading component needed to read it.