The present invention relates to electronic mails (emails, which may be simply referred to as mails), and more particularly, to a method for performing mail data management in a mail system, and an associated apparatus.
When a mail having multiple recipients is received by a mail system, the mail typically appears in each of the mail boxes of the recipients. Based on the design of the mail system, some problems may occur. For example, as each of the mail boxes of the recipients stores the mail, the overall storage space required for storing the mail in the mail boxes of the recipients, respectively, may be the single-mail data size (e.g. the data size of a single copy of the mail in one of the mail boxes of the recipients) multiplied by the number of recipients of the mail. In a situation where there are many multi-recipient mails with each multi-recipient mail having a lot of recipients, the storage space available for further mails in the mail system may decrease rapidly. Thus, a novel method and associated architecture is required for reducing mail data to improve the overall performance of mail systems.
One of the objects of the present invention is to provide a method for performing mail data management in a mail system, and an associated apparatus, in order to solve the problems which exist in the related arts.
Another of the objects of the present invention is to provide a method for performing mail data management in a mail system, and an associated apparatus, in order to reduce mail data and/or prevent unnecessary data duplication.
According to at least one embodiment of the present invention, a method for performing mail data management in a mail system is provided. The mail system may include at least one server (e.g. one or more servers, such as one or more network attached storage (NAS) devices, etc.). The method may include the following steps of: dividing mail data of a mail of a user into multiple portions of data to obtain a first partial header of a header of the mail and mail contents of the mail from the mail data of the mail, wherein the user is one of a plurality of users of the mail system, and the mail is accessed through the mail system; determining whether the first partial header and the mail contents of the mail are the same as that of at least one other mail of at least one other user within the plurality of users; and when the first partial header and the mail contents of the mail are the same as that of the at least one other mail of the at least one other user, storing a second partial header of the header into a user folder corresponding to the user as individual mail data and storing the first partial header and the mail contents of the mail into a mail pool as common mail data, wherein the mail pool and the user folder are different folders of a file system of the at least one server.
According to at least one embodiment of the present invention, an apparatus for performing mail data management in a mail system is provided. The mail system may include at least one server (e.g. one or more servers, such as one or more network attached storage (NAS) devices, etc.). The apparatus may include a processing circuit that may be positioned in the aforementioned at least one server. The processing circuit may be arranged to control operations of the mail system, and controlling the operations of the mail system may include: dividing mail data of a mail of a user into multiple portions of data to obtain a first partial header of a header of the mail and mail contents of the mail from the mail data of the mail, wherein the user is one of a plurality of users of the mail system, and the mail is accessed through the mail system; determining whether the first partial header and the mail contents of the mail are the same as that of at least one other mail of at least one other user within the plurality of users; and when the first partial header and the mail contents of the mail are the same as that of the at least one other mail of the at least one other user, storing a second partial header of the header into a user folder corresponding to the user as individual mail data and storing the first partial header and the mail contents of the mail into a mail pool as common mail data, wherein the mail pool and the user folder are different folders of a file system of the at least one server.
The method and associated apparatus of the present invention may solve problems existing in the related arts without introducing unwanted side effects, or in a way that is less likely to introduce a side effect. In addition, the method and associated apparatus of the present invention can properly manage the mail data to prevent unnecessary waste of storage space in the mail system. As a result, the present invention method and apparatus can reduce mail data and/or prevent unnecessary data duplication, and therefore can guarantee the overall performance of the mail system.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
Embodiments of the present invention provide a method for performing mail data management in a mail system, and provide an associated apparatus. The mail system may include at least one server (e.g. one or more servers, such as one or more network attached storage (NAS) devices, etc.). Based on the method, the apparatus may control the mail system to properly perform mail data management to prevent unnecessary waste of storage space in the mail system. As a result, the present invention method and apparatus can reduce mail data and/or prevent unnecessary data duplication, and therefore can guarantee the overall performance of the mail system.
According to this embodiment, the storage server 100 may be implemented as a NAS device, and the client device may be any of a multifunctional mobile phone, a laptop computer, a tablet, etc. For example, the user may access a specific storage server within the aforementioned at least one server, such as the storage server 100 of the mail system 10, after logging in to the specific storage server through a browser running on a processing circuit of the client device (more particularly, a processor thereof). In addition, the apparatus may include at least one portion (e.g. a portion or all) of the aforementioned mail system such as the mail system 10. For example, the apparatus may include a portion of the storage server 100, and more particularly, may include the processing circuit 110. In another example, the apparatus may include the whole of the storage server 100. In another example, the apparatus may include the whole of the mail system 10.
According to this embodiment, each of the storage servers 100-1, 100-2, . . . , etc. may be implemented with a NAS device. For example, the user may access any of the storage servers 100-1, 100-2, . . . , etc. after logging in to the main storage server through a browser running on the processing circuit of the client device (more particularly, the processor thereof). In addition, the apparatus may include at least one portion (e.g. a portion or all) of the aforementioned mail system such as the mail system 20. For example, the apparatus may include a portion of the storage server 100-1, and more particularly, may include the processing circuit 110-1. In another example, the apparatus may include the whole of the storage server 100-1. In another example, the apparatus may include the whole of the mail system 20.
In Step 310, the processing circuit 110 may divide mail data of a mail of the user into multiple portions of data to obtain a first partial header (e.g. a major header) of a header of the mail and mail contents of the mail from the mail data of the mail. In this embodiment, the user may be one of a plurality of users of the mail system 10, and the mail may be accessed through the mail system 10.
In Step 320, the processing circuit 110 may determine whether the first partial header (e.g. the major header) and the mail contents of the mail are the same as that of at least one other mail (e.g. one or more other mails) of at least one other user (e.g. one or more other users) within the plurality of users. According to this embodiment, a sender of the mail may have assigned the user and the aforementioned at least one other user as multiple recipients of the mail being sent. As a result, the processing circuit 110 may determine that the first partial header (e.g. the major header) is the same as that of the aforementioned at least one other mail of the aforementioned at least one other user, and may determine that the mail contents of the mail are the same as that of the aforementioned at least one other mail of the aforementioned at least one other user.
In Step 330, when the first partial header (e.g. the major header) and the mail contents of the mail are the same as that of the aforementioned at least one other mail of the aforementioned at least one other user, the processing circuit 110 may store a second partial header (e.g. a minor header) of the header into a user folder corresponding to the user as individual mail data and store the first partial header (e.g. the major header) and the mail contents of the mail into a mail pool as common mail data. In this embodiment, the mail pool and the user folder may be different folders of a file system of the aforementioned at least one server such as the storage server 100.
For better comprehension, an example of some details of the mail may be shown below:
in which:
(1). the intermediate section printed with the italic style (i.e. the section starting from “From: “Snow”<JohnSnow@thenorth.com>” and ending with “MIME-Version: 1.0”) can be taken as an example of the major header;
(2). the beginning section above the intermediate section printed with the italic style can be taken as an example of the minor header; and
(3). the end section below the intermediate section printed with the italic style can be taken as an example of the mail contents of the mail;
but the present invention is not limited thereto. In some examples, the details of the mail may be altered. For brevity, partial information of the end section shown above is not illustrated, and the notation “ . . . ” at the end of the end section stands for the non-illustrated partial information.
According to this embodiment, the first partial header (e.g. major header) may include one or a combination of sender information of the sender of the mail (e.g. “Snow” and/or “<JohnSnow@thenorth.com>” in the intermediate section shown above), receiver information of at least one recipient of the mail (e.g. “North/All” and/or “<all@thenorth.com>” in the intermediate section, in which the mail address “<all@thenorth.com>” is directed to multiple persons, which may be taken as an example of the recipients), the subject of the mail (e.g. “2016 Year End Party—2016/12/29 (Thu)” in the intermediate section), and time information of time that the sender sends the mail (e.g. “Mon, 17 Oct. 2016 16:20:16+0800” in the intermediate section). In addition, the second partial header (e.g. minor header) may include other information of the header, such as one or a combination of at least one mail scanning record (e.g. one or more mail scanning records), authentication information, and any mail delivery history. For example, the aforementioned other information of the header may include the aforementioned at least one mail scanning record, the authentication information, and the mail delivery history, but the present invention is not limited thereto. According to some embodiments, the second partial header (e.g. minor header) may include information regarding at least one operation that the aforementioned at least one server applies to the mail. For example, the storage server 100 may receive the mail and may add and/or update the second partial header (e.g. minor header) in the header of the mail to indicate the mail delivery history. According to some embodiments, the mail delivery history may vary in response to any change of the recipients, and the second partial header (e.g. minor header) in the header may vary in response to any change of the mail delivery history.
According to some embodiments, an incoming mail sent from outside the mail system 10 may include the mail of the user. Regarding the operation of Step 320, when the aforementioned at least one server (e.g. the storage server 100, or any other server in the mail system 10) receives the incoming mail from outside the mail system 10, the processing circuit 110 may be arranged to determine whether the first partial header (e.g. major header) and the mail contents of the mail are the same as that of the aforementioned at least one other mail according to the first partial header (e.g. major header). For example, the first partial header (e.g. major header) may include one or the combination of the sender information of the sender of the mail, the receiver information of the aforementioned at least one recipient of the mail, the subject of the mail, and the time information of the time that the sender sends the mail.
According to some embodiments, the processing circuit 110 may be arranged to analyze the first partial header (e.g. major header) and the mail contents of the mail to generate an analysis result. Based on a database of the mail system 10, the processing circuit 110 may be arranged to determine whether the first partial header (e.g. major header) and the mail contents of the mail are the same as that of the aforementioned at least one other mail of the aforementioned at least one other user according to the analysis result. For example, regarding the analysis result generated by analyzing the first partial header and the mail contents of the mail, at least one characteristic value (e.g. one or more characteristic values, such as one or a combination of a hash value and a checksum) of both of the first partial header and the mail contents of the mail is obtained by the processing circuit 110 (e.g. through hash value calculation and/or checksum calculation), in which the aforementioned at least one characteristic value may be utilized as the analysis result by the processing circuit 110. More particularly, the processing circuit 110 may search for the aforementioned at least one characteristic value in the database, and may determine whether the first partial header and the mail contents of the mail are the same as that of the aforementioned at least one other mail of the aforementioned at least one other user according to whether the aforementioned at least one characteristic value is found in the database. Additionally, the database may be stored in the aforementioned at least one storage device such as the set of one or more storage devices {SD(1), SD(2), . . . , SD(NS)}.
According to this embodiment, the hash value of the combination of the first partial header (e.g. the major header) and the mail contents of the mail may be taken as an example of the aforementioned at least one characteristic value, and the hash values of mails (or the mail hash values) 414 may be taken as an example of the database. The processing circuit 110 may search for the hash value in the database, to determine whether the same hash value has been previously stored or recorded in the database. When the hash value is found in the database such as the hash values of mails (or the mail hash values) 414, the processing circuit 110 may determine that the first partial header (e.g. major header) and the mail contents of the mail are the same as that of the aforementioned at least one other mail of the aforementioned at least one other user.
As the one or more hard-linked copies (e.g. a corresponding set of one or more hard-linked copies within the hard-linked copies {422-1, . . . , 422-N}) may be associated to the aforementioned one or more sets within the sets of major header and mail content 412 through the corresponding hard link(s), and as the one or more hard-linked copies do not include file contents of the one or more sets within the sets of major header and mail content 412, the present invention method (e.g. the method 300) and the associated apparatus (e.g. the mail system 10, the storage server 100, or the processing circuit 110) allows the specific user to access his/her mails without any need of storing the major headers and the mail contents of these mails in the specific user folder. For example, when the first user (e.g. “User 1” in
In Step 510, the processing circuit 110 may receive a mail such as the mail mentioned in Step 310.
In Step 520, the processing circuit 110 may divide the mail into two parts:
(P1). “major header and mail content”, such as the combination of the first partial header (e.g. the major header) of the header of the mail and the mail contents of the mail mentioned in Step 310; and
(P2). “minor header”, such as the second partial header (e.g. the minor header) mentioned in Step 330.
According to this embodiment, the multiple portions of data mentioned in Step 310 may include two portions of data. One portion of the two portions of data may include the first partial header (e.g. the major header) and the mail contents of the mail. More particularly, another portion of the two portions of data may include the second partial header (e.g. the minor header).
In Step 530, the processing circuit 110 may calculate a hash value of “major header and mail content”, such as the hash value of the combination of the first partial header (e.g. the major header) of the header of the mail and the mail contents of the mail mentioned in Step 310.
In Step 540, the processing circuit 110 may check whether the hash value (i.e. the hash value mentioned in Step 530) exists in database. When the hash value exists in database, Step 560 is entered; otherwise, Step 550 is entered.
In Step 550, the processing circuit 110 may add the hash value (i.e. the hash value mentioned in Step 530) into the database and save the “major header and mail content” mentioned in Step 520 to the mail pool (e.g. the mail pool mentioned in Step 330).
In Step 560, the processing circuit 110 may save the “minor header” mentioned in Step 520 to the user's own mail folder (e.g. the user folder mentioned in Step 330).
As shown in the lower half of
According to some embodiments, the present invention method (e.g. the method 300) and the associated apparatus (e.g. the mail system 10, the storage server 100, or the processing circuit 110) may store the N mails first, and further reduce the data size of the N mails with aid of the control scheme shown in
According to some embodiments, regarding the operation of Step 330, when the first partial header and the mail contents of the mail are the same as that of the aforementioned at least one other mail of the aforementioned at least one other user, the processing circuit 110 may store the second partial header (e.g. the minor header) of the header into the user folder corresponding to the user (e.g. one of the N user folders {420-1, . . . , 420-N} shown in
According to some embodiments, regarding the operation of Step 330, when the first partial header and the mail contents of the mail are the same as that of the aforementioned at least one other mail of the aforementioned at least one other user, the processing circuit 110 may store the first partial header (e.g. the major header) and the mail contents of the mail into the mail pool (e.g. the mail pool 410 shown in
According to some embodiments, the processing circuit 110 may store a file including the combination of the first partial header (e.g. the major header) and the mail contents of the mail into the mail pool (e.g. the mail pool 410 shown in
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.