專利名稱:索引惟一電子郵件消息及其使用的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及管理電子郵件消息和消息傳送的系統(tǒng)。更具體而言,本發(fā)明涉及操縱從電子郵件消息傳送系統(tǒng)中抽取的消息。
背景技術(shù):
電子郵件(“email”)消息傳送系統(tǒng)在許多企業(yè)中已經(jīng)成為核心應(yīng)用。在一些單位中,一個(gè)人普通一天只發(fā)送和接收幾個(gè)電子郵件消息,而在其它單位中,一個(gè)普通用戶可以發(fā)送和接收許多消息。取決于單位的規(guī)模,電子郵件消息傳送系統(tǒng)每天可以處理幾百乃至上千的消息。隨著消息和附件的數(shù)量及大小以巨大的速率增長,以及在消息庫中的關(guān)鍵商務(wù)信息的不斷增長的量,管理電子郵件服務(wù)器也日漸困難。使電子郵件服務(wù)器的容量超過負(fù)荷會(huì)影響備份和恢復(fù)性能,并且可能會(huì)由于無意中的刪除或者郵件服務(wù)器的故障而導(dǎo)致關(guān)鍵任務(wù)信息的丟失。
在一些常規(guī)的電子郵件系統(tǒng)中,消息庫的大小可由某些閾值而加以控制,比如舉例而言對個(gè)人郵箱可以存儲(chǔ)的消息的數(shù)量的限制、可被存儲(chǔ)在消息庫中的消息的累積大小等等。這些閾值可被系統(tǒng)管理員控制,或者在某些情況下,它們可以被“硬編碼”到電子郵件消息傳送應(yīng)用中。這種閾值的問題在于,它們用來使消息庫保持在某些預(yù)定的限制之內(nèi),而實(shí)際上并沒有提供任何管理能力來允許用戶將重要消息保留到它們所被需要的那么久。
在本領(lǐng)域中已經(jīng)使用的另一種用于遏制消息庫的大小的方法是“歸檔”消息。常規(guī)的消息歸檔系統(tǒng)已經(jīng)被嵌入在電子郵件消息傳送應(yīng)用之中。不過,因?yàn)檫@種系統(tǒng)典型地是專用軟件應(yīng)用,所以電子郵件管理員可能不具有許多如何來歸檔和檢索消息的選項(xiàng)。有些系統(tǒng)可能要求系統(tǒng)管理員必須在用戶需要檢索歸檔的消息時(shí)進(jìn)行干預(yù)。在其它系統(tǒng)中,“歸檔”僅僅是將消息下載到用戶的本地硬盤,而該用戶的本地硬盤可能不容易被訪問或者被搜索以檢索歸檔的消息。
在那些不包括整合歸檔功能性的電子郵件系統(tǒng)中,系統(tǒng)管理員可以通過電子郵件備份過程來實(shí)現(xiàn)人工歸檔操作。備份過程被典型地設(shè)計(jì)成允許在災(zāi)難性故障的事件下完全恢復(fù)消息庫(也稱為“郵局”)。然而,這種備份過程典型地并不提供對于歸檔系統(tǒng)所希望的許多功能性。例如,在一些備份過程中,電子郵件管理員可能僅僅為了從個(gè)人用戶的郵箱中檢索一個(gè)或多個(gè)消息而不得不恢復(fù)整個(gè)郵局。典型的備份過程的附加問題在于電子郵件消息以消息的內(nèi)容為基礎(chǔ)。如果沒有全文搜索的能力,就更難確定特定的電子郵件消息是否已經(jīng)被歸檔。
對于更加復(fù)雜的電子郵件管理,不同的單位可以有不同的電子郵件歸檔需求。例如,“全面的”歸檔方案可能被要求,其中在用戶有機(jī)會(huì)刪除任何消息之前,歸檔過程必須能夠“實(shí)時(shí)”地捕獲到所有的消息。執(zhí)行全面歸檔的一種方式是,在消息被發(fā)送或被接收時(shí)截取它們并將所述消息的拷貝放置到檔案中。采用這種方式,在消息被分發(fā)到所有的接收方之前,消息可以被捕獲并被歸檔。因此,檔案文件總體而言僅僅存儲(chǔ)每個(gè)歸檔的消息的一份拷貝。這有助于減小檔案文件的大小。
在其它單位中,公司的策略可能不要求全面歸檔,而相反可能是每周或者以其它的周期來運(yùn)行歸檔過程。這種歸檔過程不會(huì)捕獲由電子郵件系統(tǒng)所處理的每條消息,而僅僅捕獲那些到所述過程運(yùn)行時(shí)還沒有被刪除的系統(tǒng)中的消息。與實(shí)時(shí)歸檔系統(tǒng)不同,在周期性的歸檔系統(tǒng)中,消息只是在它們已經(jīng)被分發(fā)到各個(gè)接收方之后才被捕獲。第三方或者外部的、周期性的消息歸檔系統(tǒng)基本是通過閱讀在所述系統(tǒng)的每個(gè)郵箱中所存儲(chǔ)的所有消息來操作的。所閱讀的每個(gè)消息然后被拷貝到檔案文件中。因?yàn)槊總€(gè)郵箱都是獨(dú)立于其它郵箱而被閱讀的,所以由這種常規(guī)的歸檔系統(tǒng)所建立的檔案文件變得不必要地大。因此,被發(fā)送到多個(gè)郵箱的消息將看起來是處在檔案文件中。盡管如果歸檔系統(tǒng)訪問過消息庫的內(nèi)部結(jié)構(gòu),則對于歸檔系統(tǒng)而言有可能僅僅歸檔每個(gè)消息的單一的拷貝,但是,由于電子郵件系統(tǒng)的專有性質(zhì),所以對于第三方,這種訪問典型地不被準(zhǔn)予。
因此,存在對于一種索引從電子郵件消息傳送系統(tǒng)所抽取的惟一電子郵件消息的系統(tǒng)和方法的需要。
發(fā)明內(nèi)容
本發(fā)明提供一種索引從電子郵件消息傳送系統(tǒng)所抽取的惟一電子郵件消息的系統(tǒng)和方法。這種方法包括如下步驟閱讀來自電子郵件消息傳送系統(tǒng)上的郵箱的消息,其中所述消息包括多個(gè)消息屬性。消息屬性的例子包括發(fā)送者的名字、發(fā)送者的提交時(shí)間、主題等。如果始發(fā)的電子郵件消息傳送系統(tǒng)是外部的消息傳送系統(tǒng),則發(fā)送者的名字可以例如是電子郵件地址,或者如果電子郵件消息傳送系統(tǒng)是目的消息傳送系統(tǒng),則可以是一個(gè)規(guī)范的名字。提交時(shí)間優(yōu)選地是以由始發(fā)郵件消息傳送系統(tǒng)所設(shè)置的提交時(shí)間為基礎(chǔ)的,并且可以例如是以微秒來表示的。
本發(fā)明然后使用消息屬性來計(jì)算惟一標(biāo)識(shí)符或消息標(biāo)記,它優(yōu)選地包括一串?dāng)?shù)據(jù)。例如,發(fā)送者的名字和發(fā)送者的提交時(shí)間可以被用于計(jì)算消息標(biāo)記。如果該消息是惟一的,則消息標(biāo)記就被存儲(chǔ)在與消息檔案相關(guān)聯(lián)的索引文件中,也就是說,如果消息標(biāo)記不惟一,則消息也不惟一。
為了加速該確定消息是否惟一的過程,可以對消息標(biāo)記施加散列算法以便獲得該消息的預(yù)定長度的“簽名”。因此,由于索引記錄具有統(tǒng)一的長度,所以對新計(jì)算的消息標(biāo)記和已經(jīng)被存儲(chǔ)在索引文件中的消息標(biāo)記之間的比較就會(huì)更加快速。
本發(fā)明還包括一種歸檔的系統(tǒng)和方法,其中只將惟一的消息存儲(chǔ)到消息檔案中。
圖1是說明用于在本發(fā)明的第一實(shí)施例中計(jì)算消息標(biāo)記的方法的示意圖。
圖2是說明用于在本發(fā)明的第二實(shí)施例中計(jì)算消息標(biāo)記的方法的示意圖。
圖3是本發(fā)明的實(shí)施例的示范性體系結(jié)構(gòu)的示意圖。
圖4是用于根據(jù)本發(fā)明的實(shí)施例來歸檔電子郵件消息的步驟的流程圖。
圖5是說明根據(jù)本發(fā)明實(shí)施例的惟一性檢查系統(tǒng)的部件的示意圖。
具體實(shí)施例方式
本發(fā)明提供一種索引從一個(gè)或多個(gè)電子郵件消息傳送系統(tǒng)所抽取的惟一電子郵件消息的系統(tǒng)和方法。本發(fā)明還提供用于只歸檔相同電子郵件消息的惟一的多個(gè)拷貝的系統(tǒng)和方法。
本發(fā)明使用索引文件來存儲(chǔ)關(guān)于以前已經(jīng)從電子郵件消息傳送系統(tǒng)中抽取的消息的信息。索引文件可以使用允許容易地查找和比較所述文件中的條目的任何合適的格式來存儲(chǔ)。例如,索引文件可以是文本文件、擴(kuò)展頁、或者關(guān)系數(shù)據(jù)庫表或者表組。每當(dāng)將電子郵件消息添加到檔案中時(shí),“消息標(biāo)記”就被生成并被存儲(chǔ)到索引文件中。消息標(biāo)記是以足夠的電子郵件消息的特性或者屬性為基礎(chǔ)來建立每個(gè)電子郵件消息的惟一標(biāo)識(shí)符。
本發(fā)明的系統(tǒng)和方法可以用在電子郵件消息傳送系統(tǒng)中希望識(shí)別重復(fù)消息的任何應(yīng)用中。例如,電子郵件歸檔應(yīng)用可以有利地并入本發(fā)明的系統(tǒng)和方法來減小或者最小化檔案消息庫的大小。如果本發(fā)明被用在歸檔系統(tǒng)中,則在將消息添加到檔案之前,為電子郵件消息生成臨時(shí)的消息標(biāo)記。該臨時(shí)的消息標(biāo)記然后被與已經(jīng)在索引文件中存儲(chǔ)的每個(gè)消息標(biāo)記進(jìn)行比較。如果臨時(shí)消息標(biāo)記匹配于索引文件中的現(xiàn)有條目,則該電子郵件消息是已經(jīng)被歸檔的。如果情況是這樣,則不必將該消息添加到所述檔案中。
以下的部分描述本發(fā)明的兩個(gè)實(shí)施例。每個(gè)實(shí)施例使用不同的方法來生成(或計(jì)算)電子郵件消息的消息標(biāo)記。
參考圖1描述本發(fā)明的第一實(shí)施例。在該實(shí)施例中,消息標(biāo)記可以通過將選定的消息屬性連接起來以便構(gòu)成單一的文本串而加以計(jì)算。例如,如果電子郵件消息傳送系統(tǒng)是Microsoft Exchange系統(tǒng),則消息可以包括一些屬性,諸如在框10中的PR_Client_Submit_Time、框12中的PR_Sent_Representing_Email_Address、以及在框14中的PR_Subject。框16、18、以及20展示與這些屬性中的每個(gè)相關(guān)聯(lián)的對應(yīng)數(shù)據(jù)類型???2、24、以及26展示對于特定消息這些屬性可以具有的實(shí)際值的例子。例如,框10中的PR_Client_Submit_Time的值在框22中顯示為″0x01c19e138106580″。在該例子中的提交時(shí)間表示該消息被消息的發(fā)送者提交的那個(gè)時(shí)間。該時(shí)間的格式象由發(fā)送者的電子郵件消息傳送服務(wù)器上的系統(tǒng)時(shí)鐘所生成的那樣。提交時(shí)間的格式并不重要,只要該格式對于每個(gè)服務(wù)器都是標(biāo)準(zhǔn)化的。即,對于從特定服務(wù)器接收的所有消息,應(yīng)該使用相同的時(shí)間格式來計(jì)算消息標(biāo)記。
框24包含″/o=sqa/ou=dogwood/cn=Recipients/cn=Crowen”,它是框12中交換屬性PR_Sent_Email_Address的值。該屬性在本領(lǐng)域中被公共地稱為發(fā)送者的“全限定名”。根據(jù)發(fā)送者的提交時(shí)間和發(fā)送者的全限定名所生成的消息標(biāo)記將足以用來惟一地標(biāo)識(shí)多數(shù)電子郵件消息。這些值被連接起來(如用鏈接30所說明的)以便產(chǎn)生消息標(biāo)記40。
如上所描述的,使用提交時(shí)間和發(fā)送者的名字通常足以惟一地標(biāo)識(shí)電子郵件消息。不過,為了增加消息標(biāo)記代表惟一的消息的可能性,可以將其它屬性添加到所述串。例如,如圖1所展示的,在框14中的PR_Subject屬性就可以被包括。在該例子中,該屬性的值是“這是一條測試消息”,如框26所展示的。在鏈接32中,所有的三個(gè)屬性被連接起來以構(gòu)成消息標(biāo)記42。
上述的用于生成消息標(biāo)記的方法在不背離本發(fā)明的精神的情況下可以采用許多方式加以修改。例如,連接次序可以被改變,使得作為結(jié)果的消息標(biāo)記是通過將提交時(shí)間串連接到發(fā)送者的名字串而構(gòu)成的。可選地,主題可以在發(fā)送者的名字、或者提交時(shí)間等等之前。在另一個(gè)變化中,發(fā)送者的名字可以包括標(biāo)識(shí)電子郵件消息的發(fā)送者的其它屬性。例如,發(fā)送者的名字可以被表示成因特網(wǎng)電子郵件名,諸如“JDoe@acme.com”。該值然后被像上述那樣使用。而且,消息標(biāo)記可以根據(jù)其它消息屬性(諸如消息大小、報(bào)頭信息等)被生成而不使用任何發(fā)送者的信息。
根據(jù)該實(shí)施例所生成的消息標(biāo)記將有變化的長度。即,從電子郵件消息傳送系統(tǒng)所抽取的第一條消息的消息標(biāo)記的長度可以與從電子郵件消息傳送系統(tǒng)所抽取的第二條消息的消息標(biāo)記的長度不同。具體而言,之所以如此是因?yàn)榘l(fā)送者的名字和電子郵件消息主題字段可以是有不同的長度。而且,不同的電子郵件消息傳送系統(tǒng)可以使用不同的實(shí)現(xiàn)來計(jì)算提交時(shí)間。由于該消息標(biāo)記的可變長度,如果索引文件很大,則仔細(xì)搜尋一遍索引文件可能是一種過長的操作。第二實(shí)施例在以下描述,它提供用于優(yōu)化這種搜索的增強(qiáng)的消息標(biāo)記。
第二實(shí)施例在第二實(shí)施例中,通過施加散列算法,將可變長度消息標(biāo)記轉(zhuǎn)換成具有預(yù)定長度的消息標(biāo)記。在密碼術(shù)領(lǐng)域中,散列算法通常被用來生成用于加密消息的密鑰。它們還被用來生成消息的電子“簽名”,電子簽名可被用來驗(yàn)證消息的完整性。這種簽名還被稱為消息的“指紋”或者“消息摘要”。支持這種散列算法的一個(gè)原理是將該算法施加到兩個(gè)不同的消息并得到相同的結(jié)果“在計(jì)算上是不可行的”。散列算法的另一個(gè)原理是作為結(jié)果的消息摘要將有統(tǒng)一的長度。正是這第二個(gè)原理在本發(fā)明的環(huán)境中是很有用的。即,如果按照上述所生成的不同消息標(biāo)記被通過散列算法運(yùn)行,則作為結(jié)果的消息標(biāo)記就會(huì)有統(tǒng)一的長度并且還代表惟一的電子郵件消息。
圖2是說明本發(fā)明的第二個(gè)實(shí)施例的操作的示意圖。編號(hào)為10-42的條目與在上面相關(guān)于圖1所描述的相同。消息標(biāo)記42是通過將選定的屬性連接起來構(gòu)成可變長度串(諸如參考圖2所描述的串)而生成的。該串然后被用作一個(gè)到散列算法50的輸入。在該例子中,散列算法50的輸出是64比特的數(shù),該數(shù)被表示為十六進(jìn)制串“0x4764e0cc121642b5”,展示在框60中。正如本領(lǐng)域中已知的,這樣的一個(gè)串最終代表了一組64比特(多個(gè)“1”和“0”),其可以被轉(zhuǎn)換為許多不同的表示。
通過生成具有統(tǒng)一長度的消息標(biāo)記,對索引文件的查找和比較操作的性能就能夠得到很大的改善。在優(yōu)選實(shí)施例中,使用眾所周知的“MD5”散列算法。MD5散列算法在www.faqs.org/rfc1321.html的RFC1321中有所定義,在此將其全部引入以供參考。使用MD5散列算法所生成的消息標(biāo)記將具有128比特的統(tǒng)一長度(即,(如果被轉(zhuǎn)換為ASCII字符)16個(gè)字符或者32個(gè)十六進(jìn)制數(shù))。
體系結(jié)構(gòu)圖3展示可用來實(shí)現(xiàn)本發(fā)明實(shí)施例的體系結(jié)構(gòu)。企業(yè)電子郵件消息傳送系統(tǒng)300包括給客戶302和304提供電子郵件業(yè)務(wù)的電子郵件服務(wù)器301。電子郵件消息傳送系統(tǒng)300可以是Microsoft Exchange服務(wù)器,并且在檔案服務(wù)器330和電子郵件消息傳送服務(wù)器300之間的通信可以通過眾所周知的消息應(yīng)用編程接口(MAPI)協(xié)議被處理。如在本領(lǐng)域所熟知的,MAPI是一個(gè)消息傳送體系結(jié)構(gòu)和一個(gè)客戶接口部件。作為一種消息傳送體系結(jié)構(gòu),MAPI使多個(gè)應(yīng)用能夠跨越各種硬件平臺(tái)與多個(gè)消息傳送系統(tǒng)相交互。作為客戶接口部件,MAPI是函數(shù)和面向?qū)ο蠼涌诘耐耆?,該完全集形成MAPI子系統(tǒng)的客戶應(yīng)用和業(yè)務(wù)提供商接口的基礎(chǔ)。與簡單MAPI、公共消息傳送調(diào)用(CMC)和CDO庫相比較而言,MAPI給基于消息傳送的應(yīng)用和業(yè)務(wù)提供商提供最高的性能和最大程度的控制。
替代地,電子郵件消息傳送系統(tǒng)300可以是Lotus Notes郵件服務(wù)器且通信可以通過Lotus Notes應(yīng)用編程接口(API)協(xié)議被處理。相似地,如果電子郵件消息傳送系統(tǒng)是簡單郵件傳送協(xié)議(SMTP)郵件服務(wù)器,則通信可以通過SMTP被處理。
在圖3所展示的例子中,通信鏈路306和308可以使用MAPI、SMTP、或者一些其它協(xié)議,這取決于客戶系統(tǒng)302和304的能力。電子郵件可以在通信鏈路321上通過SMTP經(jīng)由因特網(wǎng)322從外部系統(tǒng)320被接收。在本發(fā)明的一個(gè)實(shí)施例中,檔案服務(wù)器330基于周期而啟動(dòng)經(jīng)由通信鏈路332與電子郵件服務(wù)器301之間的歸檔會(huì)話。這個(gè)周期基礎(chǔ)可以例如是每日的、每周的、每月的或者某個(gè)其它合適的時(shí)間間隔,這取決于企業(yè)的歸檔需求。通信鏈路332可以使用任何合適的網(wǎng)絡(luò)協(xié)議,例如,眾所周知的傳輸控制/網(wǎng)際協(xié)議(TCP/IP)。在本發(fā)明的另一個(gè)實(shí)施例中,檔案服務(wù)器330實(shí)時(shí)地或者接近實(shí)時(shí)地檢索電子郵件。
如在本領(lǐng)域所公知的,電子郵件消息傳送服務(wù)器301可以包括多個(gè)郵箱、目錄、文件夾、或者用于將消息和各個(gè)用戶相關(guān)聯(lián)的其它“存儲(chǔ)箱”。如在此所使用的,術(shù)語“郵箱”意思是與特定用戶相關(guān)聯(lián)的消息組,在可適用的地方,它包括所述用戶建立來組織他的電子郵件消息的任何子文件夾或者目錄。在一些實(shí)施例中,郵箱可以包括用于存儲(chǔ)新到達(dá)的電子郵件消息的“收件箱”以及用于存儲(chǔ)由用戶所發(fā)送消息的“發(fā)件箱”。
在檔案服務(wù)器330基于周期抽取消息的一個(gè)實(shí)施例中,檔案服務(wù)器330閱讀在電子郵件服務(wù)器301上的每個(gè)郵箱中的每一條消息。在另一個(gè)實(shí)施例中,該檔案服務(wù)器330可被配置為僅讀取自上個(gè)周期會(huì)話完成(或者被啟動(dòng))以來被建立和被提交的新消息。在另一個(gè)實(shí)施例中,檔案服務(wù)器330可以被配置成僅僅閱讀在郵箱的收件箱和發(fā)件箱中的消息。不管實(shí)現(xiàn)的消息閱讀方案如何,歸檔服務(wù)器都檢查索引文件以便確定該消息的惟一性。
該“惟一性檢查”功能可以被集成到檔案服務(wù)器330中或者在不同的服務(wù)器上被執(zhí)行。在任一情況中,該惟一性檢查功能包括消息標(biāo)記的計(jì)算,如上所述。新閱讀的消息的消息標(biāo)記被與數(shù)據(jù)庫334上的索引文件比較。該索引文件包括與在數(shù)據(jù)庫334上的消息檔案中所存儲(chǔ)的所有消息相對應(yīng)的消息標(biāo)記的列表。如果所計(jì)算的消息標(biāo)記匹配于在所述索引文件中的條目,則所述消息就不是惟一的。即,所述消息已經(jīng)被存儲(chǔ)在消息檔案中并且不必進(jìn)行第二次的存儲(chǔ)。否則,如果所計(jì)算的消息標(biāo)記與在所述索引文件中的任何記錄都不匹配,則所述消息是惟一的,并且應(yīng)該被存儲(chǔ)到所述消息檔案中。如果這樣,則所述消息標(biāo)記還被添加到所述索引文件中。
一旦消息已經(jīng)被歸檔到檔案服務(wù)器330中,所述數(shù)據(jù)就可以被移到其它存儲(chǔ)媒體,而不影響電子郵件服務(wù)器301的性能。例如,所述數(shù)據(jù)可以被移到磁帶庫系統(tǒng)335、光盤機(jī)336、CD/DVD光設(shè)備337等。通過將所述歸檔的數(shù)據(jù)移動(dòng)到這種存儲(chǔ)媒體,所述單位就有可能降低它的長期存儲(chǔ)費(fèi)用,因?yàn)檫@些媒體沒有其它磁性存儲(chǔ)媒體那么貴。
圖4是說明在本發(fā)明的實(shí)施例中用于歸檔電子郵件消息的步驟的流程圖。步驟400-406是初始化步驟并且為清楚起見而被示出。也即,一旦一個(gè)消息檔案和索引文件被提供,該過程執(zhí)行步驟408-420。在步驟400中,第一消息被從所述電子郵件消息傳送服務(wù)器的郵箱中閱讀。在步驟402中,為所述第一消息計(jì)算消息標(biāo)記,并且在步驟404中,將第一消息存儲(chǔ)到所述消息檔案中。在步驟406中,將為第一消息所計(jì)算的消息標(biāo)記存儲(chǔ)到所述索引文件中。在步驟408中,從所述電子郵件消息傳送服務(wù)器上的郵箱中閱讀第二(或者下一個(gè))消息。所述郵箱可以是與第一消息被閱讀的相同的郵箱或者也可以是不同的郵箱。在步驟410中,計(jì)算第二消息的消息標(biāo)記,并且在步驟412中,將第二消息標(biāo)記與第一消息標(biāo)記進(jìn)行比較(即,將第二消息標(biāo)記與已經(jīng)在所述索引文件中存儲(chǔ)的任何消息標(biāo)記進(jìn)行比較)。
在步驟414中,該過程分支,這取決于步驟412的結(jié)果。如果第二消息標(biāo)記匹配于第一消息標(biāo)記(即,如果第二消息標(biāo)記已經(jīng)在所述索引文件中),則第二消息就不是惟一的,并且該過程移動(dòng)到步驟420。如果所述消息是惟一的(即,所述消息標(biāo)記并不匹配于所述索引文件中的任何條目),則在步驟416,將第二消息存儲(chǔ)到所述消息檔案中,并且在步驟418中,將該第二消息標(biāo)記存儲(chǔ)到所述索引文件中。
在步驟420,該過程檢查以便查看是否還有要從所述電子郵件消息傳送服務(wù)器中被閱讀的消息。如果還有消息,則該過程就返回到步驟408以便閱讀下一條消息。否則,如果不再有消息,則該過程就結(jié)束。
圖5是展示在本發(fā)明的第二實(shí)施例中消息標(biāo)記是如何被計(jì)算的示意圖。圖5中,電子郵件消息屬性500被從所述電子郵件消息中選擇。如在此所描述的,發(fā)送者的名字和提交時(shí)間的組合在大多數(shù)應(yīng)用中可能足以惟一地標(biāo)識(shí)電子郵件消息。所選定的屬性被組合以便構(gòu)成單一的串。該串可以包括也可以不包括空格。在框502,將該串轉(zhuǎn)換為合適的比特表示。在框504,將散列算法施加到所述比特串以便在框506確定消息標(biāo)記。
如在此所描述的,歸檔和檢索電子郵件消息的本系統(tǒng)和方法可以被用在使用專用歸檔服務(wù)器和諸如SQL或ORACLETM類型的數(shù)據(jù)庫系統(tǒng)的大型企業(yè)環(huán)境??蛇x地,歸檔服務(wù)器可以運(yùn)行在與電子郵件消息傳送服務(wù)器相同的平臺(tái)上。如以上所述,電子郵件消息傳送服務(wù)器可以是以任何合適的電子郵件消息傳送協(xié)議為基礎(chǔ)的,例如,Microsoft OUTLOOKTM、Lotus NOTESTM、或者專有的或非專有的電子郵件消息傳送系統(tǒng)。
包括應(yīng)用程序的實(shí)施例本發(fā)明的實(shí)施例還包括其本身被在任意磁或電的媒體上記錄的應(yīng)用程序、以及使用該程序編程的計(jì)算機(jī)系統(tǒng)。在該實(shí)施例中,這樣編程的計(jì)算機(jī)系統(tǒng)被配置成遍歷電子郵件消息傳送服務(wù)器上的郵箱以便標(biāo)識(shí)要被添加到檔案中的消息。在本發(fā)明的程序被執(zhí)行之前,這種程序可以操作來處理被交付到所述電子郵件消息傳送系統(tǒng)的消息。采用這種方式,所述程序標(biāo)識(shí)和抽取現(xiàn)有的電子郵件消息以便歸檔。所述程序還可以被配置成實(shí)時(shí)地歸檔消息,即,當(dāng)消息被所述電子郵件消息傳送系統(tǒng)處理時(shí),一份拷貝由所述檔案服務(wù)器加以檢索以便進(jìn)行歸檔處理。
本發(fā)明的實(shí)施例可能包括嵌入的關(guān)系數(shù)據(jù)庫以便支持消息元數(shù)據(jù)的高速搜索。在這種實(shí)施例中,消息的關(guān)鍵字或者全文被添加到消息索引文件以便快速搜索消息。此外,某些附件內(nèi)容可以被添加到所述消息索引。例如,以公共字處理應(yīng)用為基礎(chǔ)的附件可以被所述歸檔服務(wù)器閱讀,以便使能對這些附件的全文搜索。
本發(fā)明提供一種用于在外部歸檔來自電子郵件消息傳送系統(tǒng)的電子郵件消息的綜合解決方案。本發(fā)明可以被負(fù)責(zé)維護(hù)電子郵件消息達(dá)延長的時(shí)間段的單位使用。例如,在某些金融單位,聯(lián)邦保密和交換委員會(huì)(SEC)已經(jīng)要求所有的記錄包括電子郵件消息必須被歸檔達(dá)5年的時(shí)間段。這些記錄必須被采用使得各個(gè)記錄能夠根據(jù)請求而被檢索的方式來存儲(chǔ)。通過將電子郵件消息與全文搜索能力消息一起存儲(chǔ)在外部檔案中,本發(fā)明的實(shí)現(xiàn)就可以解決這些和其它需求。而且,通過檢查重復(fù)的消息,檔案消息庫的大小可以被保持在可管理的水平。
本發(fā)明優(yōu)選實(shí)施例的前面的公開內(nèi)容是為了說明和描述的目的而被展示。其目的不是要窮盡本發(fā)明也不是要將本發(fā)明限制在所公開的準(zhǔn)確形式。根據(jù)上面的公開內(nèi)容,在此所描述的實(shí)施例的許多變化和修改對于本領(lǐng)域技術(shù)人員而言,是顯而易見的。本發(fā)明的范圍僅僅由所附的權(quán)利要求書以及由它們的等價(jià)內(nèi)容來加以限定。
而且,在描述本發(fā)明的代表性實(shí)施例中,說明書可能已經(jīng)將本發(fā)明的方法和/或過程作為特定順序的步驟進(jìn)行了展示。然而,在某種程度上,所述方法或者過程并不依賴于在此所闡述的特定次序的步驟,所述方法或過程不應(yīng)該被限制在所描述的特定順序的步驟。如本領(lǐng)域技術(shù)人員應(yīng)該理解的,其它順序的步驟也是可能的。因此,在說明書中所闡述的特定順序的步驟不應(yīng)該理解為是對權(quán)利要求的限制。此外,針對本發(fā)明的方法和/或過程的權(quán)利要求不應(yīng)該被限制在它們的步驟以所記載的次序執(zhí)行,并且本領(lǐng)域技術(shù)人員會(huì)容易地理解,所述順序是可以被改變的并且還保持在本發(fā)明的精神和范圍之內(nèi)。
權(quán)利要求
1.一種在從電子郵件消息傳送系統(tǒng)中所抽取的多個(gè)電子郵件消息中標(biāo)識(shí)惟一電子郵件消息的方法,所述方法包括從所述電子郵件消息傳送系統(tǒng)上的郵箱中檢索消息,所述消息包括多個(gè)消息屬性;根據(jù)所述多個(gè)消息屬性的至少一部分計(jì)算消息標(biāo)記;復(fù)查在索引中存儲(chǔ)的消息標(biāo)記的列表;根據(jù)在該索引中是否查找到所述消息標(biāo)記來確定所述消息是否不是一個(gè)已經(jīng)存儲(chǔ)在消息檔案中的重復(fù)的消息;以及如果該消息不是一個(gè)重復(fù)的消息,則在該索引中存儲(chǔ)該消息標(biāo)記且在該消息檔案中存儲(chǔ)該消息。
2.權(quán)利要求1的方法,其中所述消息標(biāo)記通過連接選自所述多個(gè)消息屬性中的至少兩個(gè)屬性而加以計(jì)算。
3.權(quán)利要求2的方法,其中所述消息標(biāo)記還通過將散列算法施加到所述消息標(biāo)記以便構(gòu)成統(tǒng)一的串而加以計(jì)算,其中所述統(tǒng)一的串具有預(yù)定的長度。
4.權(quán)利要求3的方法,其中所述散列算法是MD5散列算法。
5.權(quán)利要求1的方法,其中所述多個(gè)消息屬性包括發(fā)送者的名字以及發(fā)送者的提交時(shí)間,并且其中所述消息標(biāo)記通過將所述發(fā)送者的名字連接到所述發(fā)送者的提交時(shí)間而加以計(jì)算。
6.權(quán)利要求1的方法,其中所述多個(gè)消息屬性包括發(fā)送者的名字、發(fā)送者的提交時(shí)間以及主題,并且其中所述消息標(biāo)記通過將所述發(fā)送者的名字和所述主題連接到所述發(fā)送者的提交時(shí)間而加以計(jì)算。
7.權(quán)利要求1的方法,其中所述索引被存儲(chǔ)在關(guān)系數(shù)據(jù)庫中。
8.權(quán)利要求1的方法,其中該多個(gè)消息屬性至少包括該消息的主體的一部分。
9.權(quán)利要求1的方法,其中計(jì)算該消息標(biāo)記包括將散列算法施加到消息串以便構(gòu)成統(tǒng)一的串,其中該統(tǒng)一的串具有預(yù)定的長度。
10.一種在從電子郵件消息傳送系統(tǒng)中所抽取的多個(gè)電子郵件消息中標(biāo)識(shí)惟一電子郵件消息的系統(tǒng),所述系統(tǒng)包括通信接口,被配置為從所述電子郵件消息傳送系統(tǒng)上的郵箱中檢索消息,所述消息包括多個(gè)消息屬性;以及處理器,被配置為根據(jù)所述多個(gè)消息屬性的至少一部分計(jì)算消息標(biāo)記;復(fù)查在索引中存儲(chǔ)的消息標(biāo)記的列表;根據(jù)在索引中是否查找到所述消息標(biāo)記來確定所述消息是否不是一個(gè)已經(jīng)存儲(chǔ)在消息檔案中的重復(fù)的消息;以及如果該消息不是一個(gè)重復(fù)的消息,則在該索引中存儲(chǔ)該消息標(biāo)記且在該消息檔案中存儲(chǔ)該消息。
11.權(quán)利要求10的系統(tǒng),其中所述消息標(biāo)記通過連接至少兩個(gè)屬性以形成一個(gè)消息串而加以計(jì)算。
12.權(quán)利要求11的系統(tǒng),其中所述消息標(biāo)記還通過將散列算法施加到所述消息串以便構(gòu)成統(tǒng)一的串而加以計(jì)算,其中所述統(tǒng)一的串具有預(yù)定的長度。
13.權(quán)利要求12的系統(tǒng),其中所述散列算法是MD5散列算法。
14.權(quán)利要求10的系統(tǒng),其中所述多個(gè)消息屬性包括發(fā)送者的名字以及發(fā)送者的提交時(shí)間,并且其中所述消息標(biāo)記通過將所述發(fā)送者的名字連接到所述發(fā)送者的提交時(shí)間而加以計(jì)算。
15.權(quán)利要求10的系統(tǒng),其中所述多個(gè)消息屬性包括發(fā)送者的名字、發(fā)送者的提交時(shí)間以及主題,并且其中所述消息標(biāo)記通過將所述發(fā)送者的名字和所述主題連接到所述發(fā)送者的提交時(shí)間而加以計(jì)算。
16.權(quán)利要求10的系統(tǒng),其中所述索引被存儲(chǔ)在關(guān)系數(shù)據(jù)庫中。
17.權(quán)利要求10的系統(tǒng),其中該多個(gè)消息屬性至少包括該消息的主體的一部分。
18.權(quán)利要求10的系統(tǒng),其中該消息標(biāo)記是通過將散列算法施加到消息串以便構(gòu)成統(tǒng)一的串而計(jì)算的,其中該統(tǒng)一的串具有預(yù)定的長度。
全文摘要
一種在使用外部的服務(wù)器和數(shù)據(jù)庫系統(tǒng)的大型企業(yè)環(huán)境中標(biāo)識(shí)惟一電子郵件消息的系統(tǒng)和方法。消息惟一性被通過根據(jù)所述電子郵件消息的屬性(500)而給每個(gè)消息指配消息標(biāo)記加以確定。所述消息標(biāo)記(506)可以使用散列算法(504)來計(jì)算以加速索引和比較。所述消息標(biāo)記(506)被與和先前存在的電子郵件消息相關(guān)聯(lián)的消息標(biāo)記的索引文件相比較。如果在所述索引文件中發(fā)現(xiàn)一個(gè)匹配的消息標(biāo)記,則所述電子郵件消息就不是惟一的。否則,所述電子郵件消息就是惟一的,并且所述消息標(biāo)記被添加到所述索引文件(406)。所述系統(tǒng)可以包括用于存儲(chǔ)所述索引文件的關(guān)系數(shù)據(jù)庫。還公開了使用本發(fā)明的惟一性檢查特征的歸檔系統(tǒng)和方法。
文檔編號(hào)G06F17/30GK101030275SQ20071008936
公開日2007年9月5日 申請日期2002年2月12日 優(yōu)先權(quán)日2001年2月12日
發(fā)明者C·E·羅文 申請人:Emc公司