# Patent

## Title
System and method for managing files to be attached to or detached from an electronic mail

## Abstract

A system and method for identifying specific locations where to attach or detach e-mail attachments based on e-mail storage locations is disclosed. The method allows to search in a mail-attachment connection table all the attachment locations that are in relation to the e-mail where the attachment is to be attached to or to be detached from and to present to a user all attachment locations that have a relevance for the attach/detach operation.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation of copending U.S. patent application Ser. No. 11/949,447, filed Dec. 3, 2007, the entire contents and disclosure of which are hereby incorporated herein by reference.


FIELD OF THE INVENTION
The present invention relates generally to the field of computer-based mail or electronic mail, and more particularly, to a system and method for managing attachment/detachment of files embedded within mails.
BACKGROUND OF THE INVENTION
There are many software applications capable of attaching copies of files to electronic mails (or e-mails). Examples of such software systems include, but are not limited to, electronic mail systems, database systems, as well as collaborative systems such as Lotus NotesTM (Lotus Notes is a registered trademark of Lotus Development Corporation). Anything that can appear as a file somewhere in hard disk folders can be included as an attachment to an e-mail. Attachments can be made of images, word-processing documents, database files, spreadsheets, audio files, executable programs, etc.
Once a file is attached to an e-mail, the whole can be transmitted over a communications network (e.g., the Internet) to other computer systems. Multiple users can access the attached file using suitable collaborative software, typically over a computer communications network. Using conventional software, files attached to e-mails can be operated in several ways. For example, on Lotus NotesTM an attached file can be viewed with a file viewer, launched or processed by another application, or detached from the e-mail and stored to process the file locally or, as in the case of a program file, to be executed.
To detach a file from an e-mail and create a local copy of the attached file, the user typically (as in Lotus NotesTM), highlights the file to be detached, selects a detach option, and interacts with a “file save” interface by means of which the user must specify a filename for the local copy of the attached file and the location (i.e., the folder or directory path) to which the file must be detached. This process can be tedious for the user, mainly when multiple files are to be detached. Although some systems enable multiple attachments to be detached simultaneously, each of the attachments must be detached to the same directory despite the type of attached file or the intended use of the attached file. Additionally, conventional systems first query the user as to where the user would like the attached files to be detached.
To illustrate the need for improving current systems and methods for attaching and detaching files to and from e-mails, one may consider the scenario of creating a repository of files detached from e-mail on a personal computing system. In the course of one year, hundreds of files may be typically received by a user, included on attachments of e-mail received from many different senders. Files received by the user can be of all types (i.e., images, pictures, maps, presentation materials, word-processing documents, database files, spreadsheets, MP3 or video files, executable programs, and so) and can be related to quite different categories, subjects, topics or sub-topics (e.g., family pictures, a project documentation, folk music, medieval art, and so). Those files are usually detached by the user, and stored on folders, from where occasionally, they may be accessed by the user, reviewed and attached to new documents, or to outgoing e-mail, being redistributed to many people.
When a user needs to detach a file from an e-mail, if the file is related to a new topic, for which there is not yet a specific folder created beforehand to which save the file, the user is faced with the tasks of identifying and assigning a new category (and sometimes, one or more sub-categories) to the received file, of naming the new category (and other sub-categories, if defined), and then of creating the corresponding directory (and other required sub-directories) on the file system of the user's computer before saving the attached file in the corresponding folder.
At any time, the user should be assisted in the selection of the final directory/folder where to attach or detach those files. Moreover, when a user receives files attached to e-mails, it would be of the utmost importance for the user to automate the process of having those files saved in e-mails related folders.
Then, there is a need for automating the process for saving files detached from e-mails to locations related to the saving locations of the corresponding e-mails.
More generally, a need has arisen for a system and method for automating the process of attaching and detaching file attachments to/from e-mails.
SUMMARY OF THE INVENTION
Therefore, it is an object of the present invention to provide a system and a method which overcome the above issues of the prior art.
It is a broad object of the invention to automate the process of attaching and detaching e-mails attachments.
It is another object of the invention to provide a system and method for identifying specific locations where to attach or detach e-mails attachments based on e-mails storage folders.
It is still another object of the invention to automate the process for defining default saving locations for e-mails attachments.
According to the invention there is provided a system and method for managing e-mail attachments. Specific locations where to attach or detach e-mails attachments based on e-mails storage locations are identified. The method allows to search in a mail-attachment connection table all the attachment locations that are in relation to the e-mail where the attachment is to be attached to or to be detached from and to present to a user all attachment locations that have a relevance for the attach/detach operation.
According to a first embodiment, a method for managing electronic mail file attachments comprises the steps of: receiving a request from a user to attach or detach a file attachment from an electronic mail; identifying a mail location where to file said electronic mail; searching in a mail-attachment connection table for all attachment locations linked to the identified mail location; and extracting at least one attachment location among the found all attachment locations.
According to a further aspect of the present invention, a computer program product stored on a medium readable by a computer machine is disclosed. The computer program product tangibly embodies readable program means for causing the computer machine to perform a method of managing e-mail attachments.
Finally, a machine-readable storage is disclosed. The storage has stored thereon, a computer program having a plurality of code sections executable by a machine, wherein a first plurality of said code sections causing the machine to perform the steps of an attaching method when executed on the machine and a second plurality of said code sections causing the machine to perform the steps of a detaching method when executed on the machine.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates the computing environment to operate the method of the invention according to a preferred embodiment;
FIG. 2 is a logical view of a client mail application according to the invention;
FIG. 3 illustrates a Folder/Directory linking table according to a preferred embodiment of the present invention;
FIG. 4 illustrates a detailed flowchart of a detaching operation according to a preferred embodiment;
FIG. 5 illustrates a detailed flowchart of an attaching operation according to a preferred embodiment; and
FIG. 6a shows a standard user interface to select a file directory while FIG. 6b shows a user interface taking advantage of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
As previously mentioned, the present invention allows for identifying in an electronic mail system relevant file directories where to attach or detach file attachments.
As illustrated hereinafter, the invention is easy to implement as only the client mail application (called the “User Agent” in the SMTP environment) of the sender is modified. Thus, the implementation remains transparent for: the mail server application; and the local Mail Transfer Agent, in charge of transferring electronic mail messages over the network according to SMTP; and for the client mail application of the recipient.
A preferred environment to operate the invention is based on the SMTP protocol. Generally speaking, a message store agent (MSA) collects incoming mail and places it in a message storage device (Mailbox). A mail user agent (MUA) reads the messages stored in the message storage device and presents an interface to an external user. When the user wishes to transmit mail, the message is composed using the MUA and passed to a message transfer agent (MTA) that insures the mail is correctly addressed and packaged for transport on a communication network.
Some variations may exist with different electronic mail systems that may include a mail sent to devices that are intermittently connected to the network. In such systems, the MUA is replaced with a mail server that services requests over an intermittent line from a mail proxy device. At the request of the mail proxy device, a copy of the mail in the message storage device is copied to a storage device of an off-net machine. The mail server then proceeds in a similar manner to that described above and the elements in the mail server, including the message storage device and the MTA function as previously described.
Outgoing mail may be formatted for delivery on the off-net machine and delivered via mail proxy to the mail server for delivery to the communication network. Transactions between the off-net machine and the mail server on a machine that is continuously on the network occur only when the connection is active. However, whatever the mail system, the present invention operates similarly.
As shown in FIG. 1, User Agents A1, A2, A3, A4 (all denoted 100) operating in users' workstation act as clients for their respective mail servers (110, 120, 130) (the so called Mail Transfer Agents MTAs). In the present example, User Agents A1 and A2 are connected to a local common MTA (110) while User Agents A3 and A4 are each connected to a respective MTA (120, 130). The MTAs are in charge of managing the recipient mail addresses for sending and receiving mails either to or from the local User Agents. The local User Agents (A1, A2) are connected to the local MTA (110) which is connected over the Internet network (150) to remote MTAs (120, 130). The remote MTAs transfer and receive mails either to or from the local User Agents (A3, A4) connected to them.
A User Agent sends a mail to its local MTA. This mail comprises the data itself and the names of the recipients. To deliver a mail to a local User Agent, a MTA looks for the addresses of the recipients and puts the mail in a mail repository (mailbox 140) of the User Agent receiving the mail. The sender and recipient names correspond to the mailboxes of the senders and recipients.
According to a preferred embodiment of the present invention, a specific attach/detach block function (160) is added to the mail client application (100). It is to be noted that for simplification purposes, only one such attach/detach block function is shown in FIG. 1, but each User Agent may comprise its own function. By means of this additional function, a user is offered assistance for identifying a location where it is relevant to attach or detach an attachment while sending or receiving a mail.
Referring now to FIG. 2, details of a mail user agent 100 comprising the attach/detach block function are explained. The mail user agent is comprised of several block functions including “create/submit messages” function (250), a SMTP stack 260, “read/retrieve messages” function (240), “attach/detach” function (270), and a graphical user interface (230). The “Create Message” function (250) is used to compose, by means of an editor, the mails and the distribution lists. This function has access to directories (255) stored on a local or a remote MTA, or to directories directly on a Local Address Book (257) (which is the local space of the user). The “Submit Message” function (250) translates a message to be compliant with the “Internet Message Format” RFC2822. The SMTP Stack (260) receives the message formatted by the “Submit Message” function. This formatted message is ready to be submitted to the MTA via SMTP.
The “Read/Retrieve Messages” function (240) is used to have access to the messages stored in the Mailbox (220). The protocols (265) used to access the mail box may be either the Post Office Protocol POP3, as described in the RFC 1939 and updated by the RFC 1957 and the RFC 2449, or the Internet Message Access Protocol IMAP4 as described in the RFC 3501. The “Attach/Detach” function (270) allows to attach a file to an e-mail or detach a file from an e-mail. A local database (275) allows to record a Folder/Directory linking table to be used by the method of the present invention. The local database may be indifferently replicated on the mail server to which the user belongs. The “Graphical User Interface” GUI (230) is provided to interact with the user.
FIG. 3 illustrates the general structure of a Folder/Directory linking table 300 (FolDir in short) organized as a matrix to automatically and dynamically link the folders structure on the user workstation to the directory structure. The table is made of a plurality of records (303), each representing the current link existing between a folder (column 301) and a directory (row 302). The table is automatically updated each time the user initiates an attach or a detach operation. As shown on the figure, the columns 301 of the table designate the folders of the user mail system and denoted as ‘Folder#i’ while the rows 302 designate the disk directories and denoted as ‘Directory#j’. Each cell of the matrix denoted ‘FolDir(i,j)’ relates to a mail folder (the respective column) and to a disk directory (the respective row) and shows how many times the user has associated the respective mail folder and the respective disk directories for attaching or detaching a file.
The matrix is updated each time a user starts an attach or a detach operation (as will be detailed with reference to FIGS. 4 and 5) to attach or detach a file to/from a disk directory and save a mail into a folder. The process then allows to record a couple ‘mail folder, disk directory’ and to update the appropriate cell (303) in the FolDir table. To illustrate, for instance, a user wishes to save a file into a disk directory named ‘c:\data\budget’ and a corresponding mail into a mail folder named ‘Budget’. If a column was previously created for the folder ‘Budget’ and a row already created for the directory ‘c:\data\budget’, then the content of the existing cell is incremented by 1. If either the folder or the directory has not already been created, then the corresponding column and/or row are built and the content of the related cell is set equal to 1.
In operation, once a user detaches or attaches a file and therefore calls for the attachment/detachment operation, the process allows to search automatically the matrix to look for disk directories that are the most often used for the mail folder where the corresponding mail is stored.
A browse directory dialog box displays automatically the more relevant disk directory or a list of potential directories candidates. The list may be limited to a maximum number of directories and defined by the user in a user preference dialog box.
If no disk directory has been found for the mail folder, then a default directory is proposed in a usual way, such as proposing the last one used for most of the electronic mail systems. The user may then select the proposed or default directory or may also browse the directory structure to select another one. Once the directory selected, the matrix is updated accordingly.
Referring now to FIG. 4, the steps for processing a detach operation according to a preferred embodiment of the invention are described. At step 401, the method starts on receiving a detach request from the user. At step 402, a test is performed to determine if the mail is already in a mail folder. If it is the case (branch Yes), then control is given to step 405, otherwise (branch No) control is given to step 403. At step 403, the user is prompted to specify a name folder where the mail is to be filed. Next, at step 404, a test is performed to determine if the user has specified a mail folder or not. If it is the case (branch Yes), then control is given to step 405, otherwise (branch no) control is given to step 411.
At step 411, the standard process as implemented in the mail client is used to detach the attachment the process ends on step 412. Referring to step 405, the FolDir table 300 is searched by the folder name to determine which index ‘#i’ corresponds to the mail folder specified either at step 402 or at step 404. At next step 406, the respective folder column of the found folder index ‘#i’ is scanned to determine which record ‘Foldir(i,j)’ is maximized, and point to the corresponding directory ‘#j’. Then, at step 407, the directory previously found is proposed to the user as a default directory for detaching the file. At step 408, the directory finally selected by the user for detaching the file is retrieved to initialize a local variable ‘SelDir’. At step 409, the FolDir table 300 is scanned to determine the index ‘#s’ corresponding to the variable ‘SelDir’. At step 410, the content of the record holding the value Foldir(i,s) is incremented by one, and the detach process ends at step 412.
Referring now to FIG. 5, the steps for processing an attach operation according to a preferred embodiment of the invention are described. At step 501, the method starts on receiving an attach request from the user. At step 502, the user is prompted to specify a name of a folder where the mail that is to be sent is to be saved. At step 503, a test is performed to determine if the user has specified a mail folder or not. If it is the case (branch Yes), then control is given to step 504, otherwise (branch no) control is given to step 510. At step 510, the standard process as implemented in the mail client is used to attach the attachment the process ends at step 511.
Returning to step 504, the FolDir table 300 is searched by the folder name to determine which index ‘#i’ corresponds to the mail folder specified at step 503. At next step 505, the respective folder column of the found folder index ‘#i’ is scanned to determine which record ‘FolDir(i,j)’ is maximized, and point to the corresponding directory ‘#j’. Then, at step 506, the directory previously found is proposed to the user as the default directory for attaching the file. At step 507, the directory finally selected by the user for attaching the file is retrieved to initialize the local variable ‘SelDir’. At step 508, the FolDir table 300 is scanned to determine the index ‘#s’ corresponding to the variable ‘SelDir’. At step 509, the content of the record holding the value Foldir(i,s), is incremented by one, and the attach process ends at step 511.
Referring now to FIG. 6a and FIG. 6b, a user interface is shown to compare a standard view on FIG. 6a of a file directory proposal to the view as proposed by the present invention on FIG. 6b. More particularly, FIG. 6a shows a well-known user interface display where the last directory used is proposed. In this specific example, the directory is named “File Tools” and is proposed as being the most recently one used in an attach or a detach operation.
FIG. 6b shows a user interface display which takes advantage of the present invention by proposing on top of the regular default directory, another specific directory, based on the folder where the current mail resides. In this example the directory is named “File Management PATENT” and is proposed as being the most relevant one, on top of the directory named “File Tools” which was in this case the most recently used in a detach or an attach operation.
The person skilled in the art will easily modify the user interface of FIG. 6b to the case of more than a single directory is proposed to the user during an attach or a detach operation. In this case, the user interface as illustrated on FIG. 6b is adapted accordingly to show a list of several directories proposed as being the most relevant ones, on top of the default directory.
Each record of the FolDir table 300 may contain a computed value ‘v’ that represents a weighting factor of the recent use of the respective directory plus a time-stamped value ‘t’ representing the date/time of the last update. When ‘v’ is incremented at a time T>t, the new value is calculated according to the following formula:

v=vExp(a(t−T))+1

wherein ‘a’ is a parameter that quantifies the system memory such as the value of ‘a’ renders the old recorded information less important as regard to the more recent recorded ones.

It has to be appreciated that while the invention has been particularly shown and described with reference to a preferred embodiment, various changes in form and detail may be made therein without departing from the spirit, and scope of the invention, as illustrated in the following alternate embodiments.

## Claims

1. A method of managing electronic mail file attachments, comprising:
maintaining a mail-attachment connection table identifying a plurality of mail storage locations for storing electronic mails; and for each of the plurality of mail storage locations, identifying a plurality of attachment storage locations for storing attachments to the electronic mails stored in the each mail storage location;
receiving a request from a user to attach or detach a specified file attachment from a specified electronic mail;
storing the specified electronic mail in one of said mail storage locations;
using said one of the mail storage locations to identify a location to store said specified file attachment, including associating said one of the mail storage locations with one of the attachment storage locations identified in the table for storing attachments to electronic mails stored in the one of the mail storage locations;
storing the specified file attachment in the associated attachment storage location; and
incrementing a count of a number of times said one of the mail storage locations is associated with said one of the attachment storage locations for storing attachments to the electronic mails stored in said one of the mail storage locations.

2. The method according to claim 1, wherein the maintaining a mail-attachment connection table includes keeping counts in the mail-attachment connection table of numbers of times the attachment storage locations are associated with the mail storage locations.

3. The method according to claim 2, wherein the keeping counts in the mail-attachment connection table includes keeping a count in the mail-attachment connection table of the number of times each mail storage location is associated with each of the attachment storage locations identified in the table for storing attachments to electronic mails stored in said each mail storage location.

4. The method according to claim 3, wherein the associating said one of the mail storage locations with one of the attachment storage locations includes associating said one of the mail storage locations with one of the attachment storage locations based on the counts of the number of times each of the attachment storage locations identified in the table for storing attachments to electronic mails stored in said each mail storage location, is associated with said each mail storage location.

5. The method according to claim 2, wherein the associating said one of the mail storage locations with one of the attachment storage locations includes the user associating said one of the mail storage locations with one of the attachment storage locations identified in the table for storing attachments to electronic mails stored in the one of the mail storage locations.

6. The method according to claim 1, wherein the mail storage locations include a group of folders, and the attachment storage locations include a group of directories.

7. The method according to claim 6, wherein the mail-attachment connection table identifies for each of said folders, one or more of the directories for storing the attachments to the electronic mails stored in said each folder.

8. The method according to claim 7, wherein the mail-attachment connection table includes a multitude of cells, each of the cells being associated with a respective one of the folders and a respective one of the directories.

9. The method according to claim 8, further comprising maintaining in each of the cells a count of the number of the attachments, to electronic mails stored in the folder associated with said each cell, that are stored in the directory associated with said each cell.

10. The method according to claim 9, wherein:
the storing the specified file attachment includes storing the specified file attachment in one of the directories associated with one of the folders; and
the incrementing a count includes incrementing the count, in the cell of the mail-attachment connection table associated with said one of the folders and said one of the directories associated with said one of the folders, of the number of attachments, to electronic mails stored in said one of the folders, that are stored in said one of the directories associated with said one of the folders.

11. A system for managing electronic mail file attachments, comprising:
one or more processing units configured for:
maintaining a mail-attachment connection table identifying a plurality of mail storage locations for storing electronic mails; and for each of the plurality of mail storage locations, identifying a plurality of attachment storage locations for storing attachments to the electronic mails stored in the each mail storage location;
receiving a request from a user to attach or detach a specified file attachment from a specified electronic mail;
storing the specified electronic mail in one of said mail storage locations;
using said one of the mail storage locations to identify a location to store said specified file attachment, including associating said one of the mail storage locations with one of the attachment storage locations identified in the table for storing attachments to electronic mails stored in the one of the mail storage locations;
storing the specified file attachment in the associated attachment storage location; and
incrementing a count of a number of times said one of the mail storage locations is associated with said one of the associated storage locations for storing attachments to the electronic mails stored in said one of the mail storage locations.

12. The system according to claim 11, wherein the maintaining a mail-attachment connection table includes keeping counts in the mail-attachment connection table of numbers of times the attachment storage locations are associated with the mail storage locations.

13. The system according to claim 12, wherein the keeping counts in the mail-attachment connection table includes keeping a count in the mail-attachment connection table of the number of times each mail storage location is associated with each of the attachment storage locations identified in the table for storing attachments to electronic mails stored in said each mail storage location.

14. The system according to claim 13, wherein the associating said one of the mail storage locations with one of the attachment storage locations includes associating said one of the mail storage locations with one of the attachment storage locations based on the counts of the number of times each of the attachment storage locations identified in the table for storing attachments to electronic mails stored in said each mail storage location, is associated with said each mail storage location.

15. The system according to claim 12, wherein the associating said one of the mail storage locations with one of the attachment storage locations includes the user associating said one of the mail storage locations with one of the attachment storage locations identified in the table for storing attachments to electronic mails stored in the one of the mail storage locations.

16. A computer readable storage medium, tangibly embodying a program of instructions executable by a computer to perform a method for managing electronic mail file attachments, said method comprising:
maintaining a mail-attachment connection table identifying a plurality of mail storage locations for storing electronic mails; and for each of the plurality of mail storage locations, identifying a plurality of attachment storage locations for storing attachments to the electronic mails stored in the each mail storage location;
receiving a request from a user to attach or detach a specified file attachment from a specified electronic mail;
storing the specified electronic mail in one of said mail storage locations;
using said one of the mail storage locations to identify a location to store said specified file attachment, including associating said one of the mail storage locations with one of the attachment storage locations identified in the table for storing attachments to electronic mails stored in the one of the mail storage locations;
storing the specified file attachment in the associated attachment storage location; and
incrementing a count of a number of times said one of the mail storage locations is associated with said one of the attachment storage locations for storing attachments to the electronic mails stored in said one of the mail storage locations.

17. The computer readable storage medium according to claim 16, wherein the maintaining a mail-attachment connection table includes keeping counts in the mail-attachment connection table of numbers of times the attachment storage locations are associated with the mail storage locations.

18. The computer readable storage medium according to claim 17, wherein the keeping counts in the mail-attachment connection table includes keeping a count in the mail-attachment connection table of the number of times each mail storage location is associated with each of the attachment storage locations identified in the table for storing attachments to electronic mails stored in said each mail storage location.

19. The computer readable storage medium according to claim 18, wherein the associating said one of the mail storage locations with one of the attachment storage locations includes associating said one of the mail storage locations with one of the attachment storage locations based on the counts of the number of times each of the attachment storage locations identified in the table for storing attachments to electronic mails stored in said each mail storage location, is associated with said each mail storage location.

20. The computer readable storage medium according to claim 17, wherein the associating said one of the mail storage locations with one of the attachment storage locations includes the user associating said one of the mail storage locations with one of the attachment storage locations identified in the table for storing attachments to electronic mails stored in the one of the mail storage locations.