`
`a2, United States Patent
`
`
`
`
`
`US 6,725,228 B1
`(10) Patent No.:
`
`
`
`
`
`
`
`
`(45) Date of Patent:
`Clark etal.
`Apr.20, 2004
`
`
`
`
`US006725228B1
`
`
`
`(76)
`
`
`
`(*) Notice:
`
`
`
`
`(56)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(54) SYSTEM FOR MANAGING AND
`6,167,402 A * 12/2000 Yeager wo. eeeees 707/10
`ORGANIZING STORED ELECTRONIC
`6,182,071 BL *
`1/2001 Fushimi oe 707/7
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`MESSAGES
`6,226,630 B1 *
`5/2001 Billmers sececcceceeneeaaeeneeees 707/3
`
`
`
`
`
`
`
`
`
`6,324,569 B1 * 11/2001 Ogilvie etal. ......
`707/500
`
`
`
`
`
`
`
`6,396,513 Bil *
`5/2002 Helfmanet al.
`............ 709/206
`Inventors: David Morley Clark, 920 Innes Street,
`
`
`
`
`
`
`6,424,995 Bl *
`7/2002 Shuman ....... 709/206
`:
`we
`
`
`
`
`
`
`
`
`
`
`Nelson, British Columbia V1L 5T2
`:
`
`
`
`
`
`
`
`6,449,615 Bl *
`9/2002 Liuetal. wo. 707/10
`(CA); Thomas Wilson Gibson, 230
`
`
`
`
`
`
`
`
`5 6,466,941 B1 * 10/2002 Roweetal. .., .
`
`
`
`
`
`
`
`
`ven379(CA.Dan one cee
`6,507,846 Bl *
`1/2003 Consens nn 707/100
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`;
`Davi
`itche
`
`
`Bracewell, 708 Third Street, Nelson,
`FOREIGN PATENT DOCUMENTS
`
`
`
`
`
`
`
`
`
`
`
`British Columbia V1L 2R2 (CA); Jeff
`W099/04344
`1/1999
`
`
`
`
`
`Toy Tsao Kwan, 12 Arundel Avenue,
`
`
`
`
`
`OTHER PUBLICATIONS
`Toronto, Ontario M4K 3A4 (CA)
`
`
`
`
`Microsoft Internet Explorer 1995—2001.*
`Subject to any disclaimer, the term ofthis
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Dvorak, John C., Scarier Than Spam, Jan. 4, 1999, pp. 1-2.
`patent is extended or adjusted under 35
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`De La Cruzet al., Inside MAPI, ©1996, pp. 528-541 (Table
`US.C. 154(b) by 212 days.
`
`
`
`
`of Contents also included).
`
`
`
`
`
`
`MSDN Library—Apr. 1999, Messaging API (MAPI), Legal
`(21) Appl. No.: 09/704,199
`
`
`
`
`
`
`
`
`
`Information, Developing a Message Store Provider.
`Filed:
`Oct. 31, 2000
`22)
`
`
`
`
`
`* cited by examiner
`(22)
`File
`.
`°
`
`
`
`
`
`
`
`;
`(SL) Unt. C0 eee ecccccccsecseeseeseeseereeseeseeneesees G06F 7/00
`;
`;
`
`
`(52) US. Che ceeccceeccssseessssssseesssssseeseeesseees 707/102; 707/7
`Primary Examiner—Kim Vu
`
`
`
`
`
`
`
`
`
`(58) Field of Search... 707/7, 200, 2,
`Assistant Examiner Monplaisir Hamilton .
`
`
`
`
`
`
`
`
`
`
`
`
`
`707/102
`(74) Attorney, Agent, or Firm—Oyen, Wiggs, Green &
`
`Mutala
`
`
`
`ABSTRACT
`(57)
`References Cited
`
`
`
`
`A computer-based system catalogs and retrieves electronic
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`messages saved in a message store. The system automati-
`4,611,280 A *
`9/1986 Linderman.............04 712/300
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cally organizes each saved message into multiple folders
`4,809,158 A *
`2/1989 McCauley ........
`we 7O7/7
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`based on the contents and attributes of the message, and
`5,274,805 A * 12/1993 Ferguson et al.
`.............. 707/7
`
`
`
`
`
`
`
`
`
`
`implements improved methods for manually organizing
`5,377,354 A . 12/1994 Scannell et al.
`
`
`
`
`messages. Unlike prior art systems, where a messageexists
`5,440,734 A
`8/1995 Wagar .....ccccceeeecceeseeees 707/7
`
`
`
`
`
`
`
`
`
`
`
`
`th
`lichtweicht
`5,544,360 A
`8/1996 Lewaketal.
`.
`1
`folder.
`t!
`
`
`
`
`
`
`
`
`
`in only one folder,
`the system uses
`lightweight message
`5.548.780 A
`8/1996 Nakanura
`
`
`
`hortcuts to display
`the message in multiple folders simul-
`Tae.
`
`
`
`
`
`
`
`5,615,367 A *
`3/1997 Bennett et al. wee 707/102
`play
`=
`“ip
`§
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,694,616 A * 12/1997 Johnson et al. vec... 709/207~—«‘taneously. The system preferably permits messages to be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,813,009 A *
`9/1998 Johnson et al.
`............. 707/100
`organized by: 1) basic message and attachmentproperties,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,899,995 A
`5/1999 Millier et al.
`e.g. date, status, attachment
`type; 2) extended message
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,948,058 A *
`9/1999 Kudohet al... 707/104.1
`properties that the user can specify, e.g. keywords; and 3)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,009,442 A
`12/1999 Chenetal.
`correspondent or bulk mail sender/recipient, with automatic
`
`
`
`
`
`
`
`
`
`
`6,029,164 A
`2/2000 Birrell etal.
`separation of bulk mail from correspondence. Performance
`
`
`
`
`6,057,841 A
`5/2000 Thurlow et al.
`and usability are improved by performing reads incremen-
`
`
`
`
`
`
`
`
`
`
`
`
`6,073,131 A *
`6/2000 Roberti .....ee 707/7
`and by
`providing multiple sorting keys
`tally
`
`
`
`
`
`
`6,073,142 A *
`6/2000 Geigeret al.
`..
`... 707/500
`y
`yP
`p
`Keys.
`8
`8
`
`
`
`
`
`
`
`
`6,088,696 A *
`7/2000 Moon et al. we. 707/10
`
`
`
`
`
`
`
`6,154,740 A * 11/2000 Shah oo. eeeeeeeeeee 7O7/7
`
`
`
`
`
`
`EP
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`34 Claims, 33 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`820 Not Status|Correspondent| BulkMail|Keyword|Date ear Search|User
`
`sa
`Ue
`«87
`wo
`
`
`
`
`
`
`
`Page 1 of 57
`
`LG EXHIBIT 1008
`
`60
`68
`64
`65
`66
`
`\\
`\
`\
`\
`x
`= [
`
`
`
`Edit View| Tools Help
`File
`\
`\
`
` Hot + [_Status_[ To [Name \_
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`[Subject
`\
`Date
`
`
`
`
`
`
`
`
`
`
`—
`eae
`61 NIE
`
`
`(14) a _
`Active Mail
`ToDo (4)
`
`
`
`
`
`
`onvent
`
`
`
`Yesterday (6)
`
`
`
`
`
`
`From
`\
`This Week
`Elizabeth Green 2)|Subject
`
`
`
`Bob Baxter (1)
`
`
`
`
`
`
`
`
`Urekeno
`
`
`
`Xd5 Study <keyword>|_|——————
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 1 of 57
`
`LG EXHIBIT 1008
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 1 of 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`FIG. 1A
`
`Page 2 of 57
`
`Page 2 of 57
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 2 of 33
`
`
`
`
`
`
`
`U.S. Patent
`
`
`
`
`
`US 6,725,228 B1
`
`
`FIG. 1B
`
`Page 3 of 57
`
`Page 3 of 57
`
`
`
`U.S. Patent
`
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 3 of 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`User Interface Device
`
`
`
`
`Message Client
`
`
`
`
`
`Transport
`Server
`
`
`
`
`Events
`
`
`
`Requests
`
`
`
`
`Message Store
`
`Server(s)
`
`
`
`
`Incoming Events
`
`
`
`
`Catalog Server
`
`
`
`
`Outgoing Requests
`
`
`
`hal
`
`
`
`Store(s)
`
`
`
`
`
`
`Catalog
`
`database
`
`
`FIG. 2
`
`Page 4 of 57
`
`Page 4 of 57
`
`
`
`U.S. Patent
`
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 4 of 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`Status
`
`|--- Received
`
`
`
`Correspondent
`
`|--- Tom Gibson
`
`
`
`
`
`
`Date
`
`
`|--- Today
`
`
`|--- This Week
`|--- This Month
`
`
`
`
`
`
`
`Attachment
`
`
`|--- All Attachments
`
`
`|--- DOC
`
`
`
`Status
`
`
`
`|--- Unread
`
`
`|--- Active Mail
`
`
`
`
`
`
`Keywords
`
`
`|--- Marketing
`
`
`|--- White Paper
`
`
`
`
`
`
`
`
`Transport Header
`
`
`ReceiveDate: Today 10:10:05
`
`
`Direction: Received
`
`
`
`Envelope
`
`
`
`From: Tom Gibson
`
`
`
`To: David Clark
`
`
`Cc: David Bracewell
`
`
`
`
`
`Contents
`
`
`
`
`Subject: White paper
`
`
`
`
`Here is the white paper
`Body:
`
`
`
`for your review.
`
`
`
`
`
`Attachment: White Paper.doc
`
`
`
`
`
`
`
`tatus & Organizationa
`
`Information
`
`Status: IsUnread
`
`IsActive
`
`
`
`
`
`Keywords: Marketing
`
`White Paper
`
`
`
`
`FIG. 3
`
`Page 5 of 57
`
`Page 5 of 57
`
`
`
`U.S. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 5 of 33
`
`
`
`
`US 6,725,228 B1
`
`Catalog
`Server
`
`Message
`Store
`
`Server(s)
`
`User
`
`Interface
`Device
`
`
`
`
`Message
`Client
`
`
`
`
`
`
`
`
`Catalog
`database
`
`
`Message
`Store(s)
`
`CLIENT COMPUTER
`
`
`
`
`
`
`
`
`Catalog
`database
`User
`
`Message
`Interface
`
`
`
`Client
`.
`—7
`Device
`
`
`
`
`
`Message
`
`Store(s)
`
`
`
`
`
`
`
`FIG. 4B
`
`
`SERVER COMPUTER
`
`
`
`
`
`
`
`
`
`CLIENT COMPUTER 40B
`
`
`
`User
`Interface
`
`Device
`
`
`
`Message
`Client
`
`—_
`Catalog
`database
`
`Message
`Store
`
`Server(s)
`
`
`
`
`
`——_
`
`
`Message
`
`Store(s)
`
`CLIENT COMPUTER
`
`
`
`
`
`SERVER COMPUTER
`
`
`
`Page 6 of 57
`
`Page 6 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 6 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`28
`
`Address
`AddressId
`
`FolderId
`
`
`
`heerid
`ttac
`
`
`J Folderld
`
`
`
`WV
`
`
`
`StoreLink
`
`StoreLinkld
`
`Storeld (F
`
`
`MessageSummary
`Messageld
`vn
`<| StoreLinkld (FK
`StoreMessageld (FK
`
`4 Messageld
`Atta
`StoreAttachId (FK)
`
`
`Message Store
`
`
`
`Catalog Shortcut
`
`Attachment
`
`
`
`a StoreAttachId
`
`<attachment data>
`
`
`
`ia 35
`
`
`
`
`Message
`
`StoreMessageld
`
`
`
`
`
`
`
`FIG. 5A
`
`Page 7 of 57
`
`Page 7 of 57
`
`
`
`U.S. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 7 of 33
`
`
`US 6,725,228 B1
`
`
`
`50
`
`
`
`
`
`
`
`Catalog / Message Store
`
`
`
`Address
`
`
`
`
`
`
`Folder {>
`FolderId
`
`Shortcut
`
`
`Messageld
`
`
`1 AttachId
`<< Folderid
`
`
`
`<attachment data>
`
`MessageSummary
`
`Messageld
`
`
`
`
`
`
`
`
`
`
`
`Messageld
`
`
`
`
`
`Attachment
`Messageld
`AttachId
`
`[— 35
`
`
`
`
`
`
`
`
`FIG. 5B
`
`Page 8 of 57
`
`Page 8 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 8 of 33
`
`
`US 6,725,228 B1
`
`
`
`60
`
`
`
`
`
`
`64
`
`
`
`65
`
`
`
`66
`
`
`
`
`;—{—_|—__+
`lh——
`
`
`
`
`
`
`
`61
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`61A
`
`
`
`(14)
`
`
`Active Mail
`
`To Do (4)
`
`Unread (18)
`
`
`Today (12)
`
`Yesterday (6)
`
`
`
`
`
`
`
`
`
`
`
`ThisWeek jeElizabeth Green (2) je
`
`
`
`
`
`
`
`Bob Baxter (1)
`i
`iEES
`Forrester Research
`
`
`
`
`PDA <saved search>
`
`
`
`
`
`
`Ul <keyword>
`
`
`
`
`X45 Study <keyword>
`
`
` 62C
`
`
`
`
`
`
`
`
`ar[satus|Gaeopandent|BakWalKeyword[Date[Atachmen|Search|User
`
`
`ee15 msgs of 100
` 69
`
`
`
`62
`
`
`
`
`FIG. 6
`
`Page 9 of 57
`
`Page 9 of 57
`
`
`
`U.S. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 9 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`
`THIRD LAYER- Correspondence and Bulk Mail Organization
`
`
`
`
`
`Separate Correspondence from Bulk Mail
`
`
`
`Automatic organization of Correspondence
`
`
`
`
`
`Bulk Mail organization by senderor recipient
`
`
`
`
`
`
`Manage Correspondent and Bulk Mail folders
`
`
`
`
`
`
`
`
`
`
`
`
`SECONDLAYER- Applications of Lightweight Message Shortcuts
`
`
`
`Automatic organization by Status
`
`
`
`Automatic organization by Date
`
`
`
`Automatic organization by Attachment
`
`
`
`
`
`Automatic organization by user assigned Keyword
`
`
`
`
`
`Improved manual organization in user created folders
`
`
`
`Improvedfiltering mechanisms
`
`
`
`Improved handling of search results
`
`
`
`
`
`
`
`Incremental read of Folder contents
`
`
`
`
`
`
`BASE LAYER- Base Services
`
`
`Catalog database
`
`
`
`
`Unified view of multiple Message Stores
`
`
`
`
`
`Catalog Server Requests and Events
`
`
`
`Lightweight message shortcuts
`Timed Shortcuts
`
`
`
`
`
`User created Shortcuts
`
`
`
`User excluded Shortcuts
`
`
`
`
`
`
`
`
`
`
`FIG. 7
`
`Page 10 of 57
`
`Page 10 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 10 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`57
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`56
`
`
`Folder
`
`
`Shortcut
`
`
`
`
`Folderld
`
`
`
`Messageld
`
`
`AlternateKey1
`ParentFolderld
`AlternateKey1
`AttachId
`
`
`
`
`
`
`
`= ParentFolderlId_|FolderName FolderId = Folderld
`
`
`
`
`
`
`
`
`FolderType
`SortKey
`+ SortKey
`
`
`
`
`
`
`
`
`
`
`
`AlternateKey2
`IsHot
`<1 SortColumn
`
`
`
`
`
`
`
`= ParentFolderld
`FolderDateTime
`SJ sortDirection
`AlternateKey2
`
`FolderSortColumn
`Irectio
`Ore
`
`
`FolderSortDirection
`+ FolderName
`TriggerAction
`= TriggerDateTime
`
`
`
`
`
`
`
`ShovtcutCount
`TriggerDateTime
`(uppercase)
`
`
`
`
`
`AlternateKey3 Caer Count
`Tecorneep
`
`
`
`
`
`
`
`
`
`
`orrespShortcutCoun
`UnreadCorrespCount
`IsUsershortcut
`
`
`
`
`= IsHot
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 8
`
`Page 11 of 57
`
`
`
`
`
`
`
`
`33
`
`
`
`
`
`
`
`
`
`
`
`
`
`MessageSummary
`
`
`Messageld
`AttachSummary
`
`
`
`
`Messageld
`FolderExcludeList
`
`_- AttachId
`IsUnread
`
`
`
`
`
`
`AttachType
`IsCorresp
`
`
`AttachName
`MessageDateTime
`
`
`
`
`
`DisplayNames
`AttachSize
`
`
`
`Subject
`
`
`
`Page 11 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 11 of 33
`
`
`
`US 6,725,228 B1
`
`
`
`4
`
`
`
`Message Store Server
`
`79
`
`Catalog Server
`
`
`
`
`Incoming Events
`
`
`
`7
`
`MessageClient
`
`
`
`
`Incoming Requests
`
`
`
`
`@———MessageAdded
`AddFolder-—————_e
`
`
`@———MessageChanged
`ChangeFolder———_
`
`
`e———_MessageDeleted
`
`
`ReadFolderSubtree———e
`
`
`
`
`
`
`
`
`
`ReadHotFolders————_e
`
`ReadFolderContents-——e
`
`
`
`
`
`
`
`DeleteShortcut-——_e
`
`DeleteFolderShortcuts———e
`
`
`
`
`ReadMessageSummary——®
`
`ReadAttachSummary———@
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Qutgoing Events
`
`
`
`FolderAdded ————_
`
`
`
`FolderHotChanged———_}>
`
`
`ShortcutAdded ———_>
`
`ShortcutDeleted-———_>
`
`ShortcutSortKeyChanged—>
`
`
`FolderChanged————_>
`
`FolderDeleted——_»
`
`SummaryChanged -———}>
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Qutgoing Requests
`
`<+———ReadMessage
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 9
`
`Page 12 of 57
`
`Page 12 of 57
`
`
`
`U.S. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 12 of 33
`
`
`US 6,725,228 B1
`
`
`
`ShortcutEntry
`
`
`
`Memory structures
`
`
`
`
`
`
`
`
`
`
`
`
`Shortcut
`
`
`
`ShortcutAction
`100 \
`
`
`
`ShortcutArray
`Excluded
`
`
`OldShortcut
`
`
`
`[ AttachSummary ]
`
`
`
`FIG. 10A
`
`Process each ShortcutEntry as shownin FIG. 11A.
`
`
`
`
`
`Input Parameters
`
`= MessageSummary
`
`
`
`
`
`
`
`
`
`
`Read ail Shortcuts for Message. Save each Shortcut as an OldShortcut
`
`
`
`
`
`object in ShortcutArray with ShortcutAction of saDelete.
`
`
`
`
`
`
`
`
`
`Execute Second Layer 2 Automatic Organization Rules
`
`
`
`
`
`(which use "AddChangeShortcut" to create Shortcuts)
`
`
`
`
`
`
`Execute Second Layer Filter Rules
`
`
`
`
`(which use "AddChangeShortcut" to create Shortcuts)
`
`
`
`
`
`
`
`
`
`
`
`Execute Third Layer Correspondent and Bulk Mail Rules
`
`
`
`
`
`(which use "AddChangeShortcut" to create Shortcuts)
`
`
`
`
`
`
`For each element in FolderExcludeList, do "ValidateFolderListElement”.
`
`
`
`
`
`
`
`
`
`If valid element, set Excluded flag in matching ShortcutEntry to True.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 10B
`
`
`
`Page 13 of 57
`
`Page 13 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 13 of 33
`
`
`US 6,725,228 B1
`
`
`
`AddChangeShortcut
`
`
`
`
`
`
`
`
`Input Parameters
`
`
`= Messageld
`
`
`+ AttachId
`+ Folderld
`
`
`
`
`+ TriggerAction
`
`+ TriggerDateTime
`+ IsUserShortcut
`
`
`
`
`
`
`
`
`
`Search ShortcutArray for
`matching Shortcut or
`
`
`
`
`OldShortcut (using
`
`
`Messageld + AttachId +
`
`
`
`FolderId as search key)
`
`
`
`Add ShortcutEntry to
`
`
`ShortcutArray. Set
`
`ShortcutAction to saAdd.
`
`
`
`Build Shortcut object in ShortcutEntry,
`using info from Input Parameters.
`
`No
`
`Set ShortcutAction
`
`
`ValidateFolderListElemen
`
`
`
`
`
`
`FIG. 10C
`
`
`
`
`
`
`Read Folder from Catalog
`database
`
`
`
`
`to saKeep.
`FolderExcludeList
`
`
`
`If FolderDateTime in element
`
`
`
`doesn't match value in
`
`
`
`Folder, delete element from
`
`
`
`
`
`
`
`FIG. 10D
`
`
`
`Page 14 of 57
`
`Page 14 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 14 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`110
`
`
`
`
`
`Input Parameters
`
`
`
`= ShortcutEntry
`
`111
`
`
`
`
`
`Read Folder from Catalog
`
`database
`
`
` DeleteShortcut
`
`
`
`
`
`
`
`
`
`
`
`
`With OldShortcut, do
`
`
`
`“DecrementFolderCounts"
`
`
`
`Ore 11B)
`saDelete
`
`
`
`
`« Delete Shortcut from
`
`
`
`
`
`IsUser
`
`
`Catalog database
`Shortcut?"
`
`
`
`
`
`
`¢« Generate ShortcutDeleted
`
`Event
`
`
`
`
`
`*
`Do "UpdateFolder" (FIG.
`
`
`
`
`Yes
`
`
`Yes
`118)
`
`
`sakeep
`
`Yes
`
`No
`
`112
`”
`
`B hiteatia
`
`
`
`
`
`
`No
`
`113
`
`UpdateShortcut
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Do "BuildShortcut" (FIG. 11B)
`
`
`
`
`If Shortcut is same as OldShortcut, then
`Exit
`
`
`
`
`With OldShortcut, do
`"DecrementFolderCounts" (FIG. 11B)
`
`
`
`Ad De
`
`
`With Shortcut, do "IncrementFolderCounts"
`
`
`
`118)With Shortcut,
`(FIG. 11B)
`
`
`PeeanoeaidesCounts"
`Update Shortcut in Catalog database
`
`
`
`
`
`
`
`(FIG. 11B)
`If the SortKey has changed, generate a
`
`
`
`
`
`ShortcutSortKeyChanged Event
`*
`Add Shortcut to Catalog
`Do "UpdateFolder" (FIG. 11B)
`
`
`
`
`
`
`
`database
`
`
`
`
`
`
`* Generate ShortcutAdded
`Event
`
`
`
`
`Do "UpdateFolder” (FIG.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`115
`
`
`
`
`
`
`
`
`
`Set ShortcutTimer as shown in FIG. 13
`
`
`FIG. 11A
`
`
`
`Page 15 of 57
`
`Page 15 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 15 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`BuildShortcut
`
`
`
`
`
`Finish building the Shortcut object in ShortcutEntry:
`
`
`
`
`
`-- Build SortKey is shown in FIG. 12
`
`
`
`
`
`
`
`-~ Set SortKey and SortColumn (from Folder)
`
`
`
`
`
`
`
`-- Set IsUnread and IsCorresp (from MessageSummary)
`
`
`
`
`
`
`
`IncrementFolderCounts
`
`
`
`¢«
`Increment ShortcutCount
`
`
`
`
`
`
`If Shortcut.IsUnread, increment UnreadCount
`¢
`
`
`
`
`If Shortcut.IsCorresp, increment CorrespShortcutCount
`¢
`
`
`
`
`
`
`¢
`
`
`
`If Shortcut.IsCorresp AND IsUnread, increment UnreadCorrespCount
`
`
`
`
`
`
`
`DecrementFolderCounts
`
`
`Decrement ShortcutCount
`
`
`
`
`If Shortcut.IsUnread, decrement UnreadCount
`
`
`
`If Shortcut.IsCorresp, decrement CorrespShortcutCount
`
`
`
`
`
`
`
`
`If Shortcut. IsCorresp AND IsUnread, decrement UnreadCorrespCount
`
`
`
`
`UpdateFolder
`
`
`
`
`« Update Folder in Catalog database
`
`
`
`
`¢ Generate FolderChanged Event
`
`
`
`
`FIG. 11B
`
`
`
`Page 16 of 57
`
`Page 16 of 57
`
`
`
`U.S. Patent
`
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 16 of 33
`
`
`
`US 6,725,228 B1
`
`
`SHORTCUT STRUCTURE
`
`
`
`
`FLAGS ENCODING
`
`
`
`
`
`
`Byte
`
`
`Offset Length Field
`
`
`0
`4
`
`
`4
`2
`
`
`6
`4
`
`
`6
`10
`
`
`16
`1
`
`
`17
`1
`
`
`18
`4
`
`
`22
`1
`
`
`23
`1
`
`
`Messageld
`
`Attachid
`
`FolderId
`
`SortKey
`
`SortColumn
`
`TriggerAction
`TriggerDateTime
`
`Flags
`
`IsCorresp
`
`
`
`
`
`Bit
`
`
`
`
`0
`1
`2
`
`
`
`Length Field
`SortDirection
`
`IsUnread
`
`
`IsUserShortcut
`
`
`1
`1
`1
`
`
`
`
`
`
`FIELD TYPE
`
`
`
`
`
`SORT KEY FORMAT
`
`
`
`Notes
`
`
`
`
`
`UnicodeString
`
`
`
`
`a
`AnsiString
`
`
`
`uUCcW1
`
`
`
`uUCcW2
`
`
`
`UCW3
`
`
`
`Unicode Character Weights of
`
`
`
`
`
`
`first 3 characters of string.
`
`
`
`C1
`
`C2
`
`
`
`C3
`
`
`
`C4
`
`
`
`C5
`
`
`
`C6
`
`
`
`Values offirst 6 characters of
`
`
`
`
`string.
`
`.
`DateTime
`
`
`
`YY
`
`
`
`MM
`
`
`
`DD
`
`
`
`hh
`
`
`
`mm|
`
`
`
`ss
`
`
`
`
`
`YY = Year - 1950
`
`
`
`
`Enumeration OR
`
`Boolean
`
`(sdDescending)
`
`Value
`
`
`
`YY
`
`
`
`MM
`
`
`
`DD
`
`
`
`hh
`
`
`
`YY = Year - 1950
`
`
`
`
`
`Srurmeration OR 255|255|Value 255
`
`
`
`
`255
`
`
`
`
`
`
`
`
`
`
`
`
`
`YY = Year - 1950
`
`
`(sdAscending) “YY|MM = BD] = hh
`
`
`Integer32 OR
`
`
`Integer16
`
`
`
`
`
`
`w-------------- Bits ~-------------
`
`31-24| 23-16
`Not Used
`
`
`
`
`
`
`
`
`
`
`
`
`Bits are numbered with 0 being
`
`
`
`
`
`the least significant and 31 the
`
`
`mostsignificant.
`
`
`FIG. 12
`
`Page 17 of 57
`
`Page 17 of 57
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Apr.20, 2004
`
`
`
`
`Sheet 17 of 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`Startup
`Processing
`
`
`
`
`Initialize ShortcutTimer
`to inactive state
`
`
`
`
`
`
`
`
`
`Readfirst Shortcut
`
`
`from Catalog database
`
`
`using AlternateKey2
`
`
`
`
`
`
`135
`
`
`
`AddChange
`Shortcut
`
`
`
`
`
`
`If TriggerDateTime is non-zero and is
`
`
`
`
`less than ShortcutTimer, reset
`
`
`ShortcutTimer to TriggerDateTime
`
`
`
`137
`
`Shortcut
`Timer
`
`
`*
`
`*
`
`
`
`
`
`
`Read Shortcut from Catalog database
`
`
`
`
`If TriggerAction is taDeleteShortcut then
`
`
`
`generate an internal DeleteShortcut Request.
`
`
`
`
`FIG. 13
`
`Page 18 of 57
`
`Page 18 of 57
`
`
`
`
`U.S. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 18 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`140
`
`
`
`
`Start
`sdDescending
`
`
`
` Request Parameters
`
`
`
`
`
`
`
`143AsdAscending 143B
`
`= Folderld
`143
`No
`
`
`
`
`
`
`+ SortKey
`+ SortDirection
`UseFoklereard
`Position atfirst
`Position at last
`
`
`
`
`
`
`
`
`+ RequestCount
`position on Shortcut
`Shortcut in Folder
`Shortcut in Folder
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`+ CorrespOnly
`AlternateKey1
`using AlternateKey1
`using AlternateKey1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`145A
`
`
`
`Set ISEOF to
`
`
`
`
`
`
`
`Read Next/Prev Shortcut in Folder
`
`
`(depending on SortDirection)
`
`
`
`
`
`End of
`
`
`
`No
`
`
`
`
`
`Is (ContentCount >=
`
`
`RequestCount) AND
`
`
`
`
`(Current SortKey NOT =
`
`
`Previous SortKey)?
`
`
`
`No
`
`Read
`
`
`
`
`Is (CorrespOnly = True)
`AND (IsCorresp = False) ?
`
`te
`
`
`Sort ContentArray in
`
`
`
`
`
`memory, using values
`
`
`
`
`from MessageSummary
`
`
`and AttachSummary
`
`
`
`
`
`
`
`
`149
`
`
`BuildRep
`
`
`
`
`
`
`
`
`
`
`Read related MessageSummary from Catalog
`
`database
`
`
`
`
`
`
`
`
`If AttachId is non-zero, read related
`¢
`
`
`
`
`
`
`
`
`AttachSummary from Catalog database
`
`
`
`
`
`
`Add MessageSummary and AttachSummary (or
`
`
`
`
`NULL) to ContentArray
`
`
`
`
`*
`Increment ContentCount
`
`
`
`
`
`
`
`Set SortKey in Reply from the current Shortcut
`*
`
`
`SortKey
`
`
`
`
`
`
`No
`
`14
`
`I
`
`«
`
`
`
`
`
`
`
`
`
`
`Reply Parameters
`= ResultCode
`
`
`+ SortKey
`
`
`+ ISEOF
`
`
`+ ContentCount
`
`
`
`
`+ ContentArray
`
`
`
`
`
`= Array of [ MessageSummary + (AttachSummary OR NULL) ]
`
`
`
`
`FIG. 14
`
`Page 19 of 57
`
`Page 19 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 19 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`Read Folder from Catalog
`
`
`
`152
`
`
`
`
`
`Request Parameters
`= FolderlId
`
`
`+ FolderSortColumn
`
`
`
`+ FolderSortDirection
`
`
`
`Pa
`
`Pototoderusne
`
`
`
`
`
`AlternateKey1
`
`
`
`
`Read next Shortcut in Folder
`
`
`
`
`
`
`155
`
`
`(ToA)e-ves
`
`
`
`End of
`
`
`Folder?
`
`
`
`
`
`
`
`The underlying data type
`for the FolderSortColumn
`
`
`
`Enumeration
`OR Boolean
`
`
`No
`
`
`
`
`
`
`
`Data Type?
`
`
`
`
`
`
`Need to build SortKey if
`FolderSortColumn
`
`
`
`NOT = SortColumn
`OR FolderSortDirection
`
`
`NOT = SortDirection
`
`
`
`156
`
`
`
`157
`
`
`
`
`
`Need to build
`
`
`SortKeyif
`FolderSortColumn
`
`NOT = SortColumn
`
`
`
`
`* Update Folder in Catalog database
`
`i
`
`?
`
`
`
`Build
`SortKey?
`
`Yes
`
`
`
`
`
`
`If FolderSortColumn is a column in the MessageSummary, read
`
`
`
`
`
`
`the MessageSummary from the Catalog database
`
`
`
`
`
`
`If FolderSortColumn is a column in the AttachSummary, read the
`
`
`
`
`
`AttachSummary from the Catalog database
`
`
`
`Build the SortKey
`
`
`
`Update Shortcut in Catalog database
`
`
`
`
`
`
`
`*
`*
`
`Set FolderSortColumn
`
`
`Set FolderSortDirection
`
`
`
`
`
`
`
`
`
`
`
`FIG. 15
`
`Page 20 of 57
`
`Page 20 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 20 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`
`Containsall tables and fields of Base Layer, plus the following:
`
`
`
`Folder
`
`56
`
`SearchCriteria
`
` MessageSummary
`
`
`
`
`Direction
`
`SendState
`
`IsDeleted
`
`IsActive
`
`IsKept
`IsTagged
`
`IsToDo
`KeywordList
`
`
`
`
`
`53
`
`
`
`
`
`
`FIG. 16
`
`Page 21 of 57
`
`Page 21 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 21 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`Root
`
`
`|--- Status
`
`
`
`|--- Active Mail
`|
`
`
`|--- Deleted
`
`
`|--- Drafts
`
`
`|--- Kept
`
`|--- Received
`
`
`|--- Sent
`
`
`|--- Tagged
`
`|--- To Do
`
`
`|--- Unread
`
`
`|--- Waiting Send
`
`
`
`
`
`--- Date
`
`
`|--- Today
`
`
`|--- Yesterday
`
`
`
`|--- This Week
`
`
`
`|--- Last Week
`
`
`
`
`|--- * Automatically created Month folders
`
`
`
`
`
`-- Attachment
`
`
`
`|--- All Attachments
`
`
`
`
`|--- * Automatically created AttachmentType folders
`
`
`
`
`
`--- Keyword
`
`
`
`
`|--- * Automatically created Keyword folders
`
`
`
`
`
`
`- Search Results
`
`
`
`|--- * Search Results folders
`
`
`
`
`
`
`--- User Folders
`
`
`
`|--- * User created folders
`
`
`
`|||||| | ||| ||||||| |||||
`
`
`FIG. 17
`
`Page 22 of 57
`
`Page 22 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 22 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Containsall tables and fields of Base Layer and Second Layer,plus the following:
`
`
`
`Folder
`
`
`
`IsPendingCorresp
`
`
`
`56
`
`
`
`
`
`
`37
`
`
`
`
`
`
`
`
`MessageSummary
`52 AttachSummary
`
`
`
`
`
`58
`
`
`
`
`
`Address
`
`
`
`AddressId
`
`
`FolderId
`
`AddressString
`
`AddressType
`
`IsPendingCorresp
`
`
`
`
`
`
`
`33
`
`
`
`AddressList
`
`
`
`
`
`
`AlternateKey1
`
`= AddressString
`
`(uppercase)
`
`
`AlternateKey2
`
`
`= Folderld
`
`
`FIG. 18
`
`Page 23 of 57
`
`Page 23 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 23 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`
`
`Contains all Folders in Base Layer and SecondLayer,plus the following:
`
`
`
`
`<Root>
`
`|--- Correspondents
`
`
`|--Me
`|
`
`
`
`
`
`|--- * Automatically created Correspondentfolders
`|
`
`
`
`
`
`
`|
`|--- * User created Correspondentfolders
`
`
`
`
`--- Bulk Mail
`
`
`
`|
`|--- Unsorted
`
`
`
`
`
`
`|--- * User created Bulk Mail folders
`|
`
`
`
`
`
`
`
`||
`
`
`FIG. 19
`
`Page 24 of 57
`
`Page 24 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 24 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Includes all Requests and Events in Base Layer and Second Layer, plus the following:
`
`
`
`24
`
`
`
`29
`
`
`
`27
`
`
`
`
`
`Message Store Server
`
`
`
`
`Catalog Server
`
`
`
`
`MessageClient
`
`
`
`
`Incoming Requests
`
`
`
`
`AddMyAddress-—————
`ReadFolderAddresses-———e
`
`MoveAddress—_———®
`
`ProcessAddressQueue———®
`
`
`
`
`
`
`
`FIG. 20
`
`Page 25 of 57
`
`Page 25 of 57
`
`
`
`U.S. Patent
`
`
`
`
`
`
`Apr.20, 2004
`
`
`
`
`Sheet 25 of 33
`
`
`
`US 6,725,228 B1
`
`AddressEntry
`
`
`
`
`
`
`
`
`
`
`
`
`AddressArray “~~
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IsConfirmedCorresp
`
`
`FIG. 21A
`
`
`
`
`
`218
`
`
`
`
`
`
`Phase 1 Processinga eee ee aeee
`
`1
`
`
`
`
`—------ | Increment IF ( AddressRole = ( arSender OR arFrom ) )
`|
`
`
`
`eee ee ee ee KEEe ee 1
`
`TTS 1 Increment IF ( AddressRole = arTo )
`|
`
`
`
`
`
`—_
`
`
`StateCounters
`
`
`ToCount
`
`OriginCount
`
`ShortcutCount
`
`
`
`
`
`
`
`
`
`FIG. 21B
`
`
`
`Page 26 of 57
`
`Page 26 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 26 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`Phase 1 Processing
`
`
`
`| Set to True
`
`
`
`
`
`
`
`
`|
`(Direction = drSend )
`IF
`|
`
`
`
`
`\
`/\ AND ( AddressType = atMyAddress _)
`
`
`
`
`
`|
`AND( AddressRole = arFrom )
`if
`eeeee eeEEE J
`
`
`
`/ mmmeee eee sa eae
`/
`| Set to True
`
`
`
`
`
`
`
`
`
`{
`IF
`(Direction = drReceive )
`|
`
`
`
`
`(
`AND ( AddressType = atMyAddress )
`_o-7 |
`
`4
`-
`| AND ( AddressRole = arTo OR arCc ORarBec )
`
`
`
`
`
`
`
`
`creer tse sss eee ese ee eae ee eS |
`
`
`
`
`
`~~~ _1 Set to True
`|
`
`
`
`
`IF ( AddressType = atBulkAddress )
`|
`
`
`
`
`|
`Sot Set to True
`
`
`
`
`
` (AddressType = atCorrespAddress )
`\
`1
`IF
`
`
`\\ | AND ( AddressRole = ( arSender OR arFrom)) |
`
`
`
`
`
`
`
`
`
`
`
`
` St
`
`
`
`
`
`
`
`
`
`poe e+ ----+
`
`\ | Set to True
`|
`
`
`
`
`
`
`\
`IF
`(AddressType = atCorrespAddress )
`
`
`
`
`
`|
`AND ( AddressRole = ( arTo orarCc or arBcc) )
`mee ee i ei ei eiieeeee ai aaa ee er
`
`
`
`
`
`FIG. 21C
`
`
`
`Page 27 of 57
`
`Page 27 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 27 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`Input Parameters
`
`= MessageSummary
`
`
`
`
`
`Initialize memory structures
`
`Get next elementin
`
`
`
`
`MessageSummary's AddressList
`
`
`
`225
`
`
`
`Yes
`
`
`
`To Phase 2
`
`
`
`No
`
`
`
`Initialize AddressEntry and add to
`AddressArray
`
`Increment StateCounters
`
`Read Address from Catalog
`database
`
`: 229
`
`Add Address information to
`
`
`
`
`AddressEntry
`
`
`Set StateFlags
`
`
`
`
`FIG. 22
`
`Page 28 of 57
`
`Page 28 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 28 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`From Phase 1
`
`
`
`
`
`
`Get next AddressEntry in
`AddressArray
`
`
`236
`
`
`End of
`
`
`Array?
`
`No
`
`
`
`
`
`
`Apply Corresp/Bulk Mail Rules to
`
`
`
`AddressEntry as shownin FIG. 24
`
`239
`
`
`
`Create
`
`Shortcut?
`
`
`
`
`
`c— 240A 240
`Do "AddAddressFolder"
`Yes
`
`
`
`as shownin FIG. 25A
`
`
`
`
`
`
`
`Create
`
`IF ( AddressId = 0
`)
`
`
`(— 241A
`
`
`
`(IsPendingCorresp)
`IF
`AND ( IsConfirmedCorresp)
`
`
`
`
`241
`
`
`
`odify
`
`Pending
`State?
`
`to NOT IsBulkMail
`
`
`
`Do
`"UpgradePendingCorresp"
`as shownin FIG. 25B.
`
`
`
`
`
`
`
`
`
`*
`
`*
`
`
`
`
`Do "AddChangeShortcut" as
`shownin FIG. 10B.
`
`
`
`Increment ShortcutCount
`
`
`
`
`
`
`
`Add Shortcut to Unsorted Folder
`
`
`
`Set IsBulkMail to True
`
`
`
`
`
`
`Non-zero
`
`
`
`
`
`Set MessageSummary IsCorresp
`
`
`
`
`
`
`
`FIG. 23
`
`Page 29 of 57
`
`Page 29 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 29 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`(IF
`( IsBulkMail )
`} AND ( AddressType = atBulkAddress )
`
`
`
`
`( IsBulkMail ) AND ( IsToMe)
`(IF
`
`
`
`
`| AND ( IsFromKnownCorresp )
`
`
`
`AND ( Direction = drReceive )
`
`
`
`, AND ( AddressType = atCorrespAddress)
`
`
`
`
`
`
`'AND ( AddressRole = ( arSender OR arFrom) )
`
`
`
`|
`Imm
`
`
`I
`
`ho
`
`|
`
`
`
`
`
`
`
`I
`[
`
`
`
`oes
`
`
`>w66}>
`
`
`
`
`
`
`
`
`pe
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 30 of 57
`
`( IsBulkMail ) AND ( IsFromMe)
`[IF
`
`
`
`
`
`
`| AND ( IsToKnownCorresp)
`| AND( Direction = drSend)
`
`
`
`
`
`
`
`| AND ( AddressType = atCorrespAddress)
`I
`
`
`
`
`
`AND( AddressRole = ( arTo OR arCc ORarBec ) )!
`DeeTT ee To-
`
`
`
`IF
`( IsBulkMail )
`7
`
`
`
`
`VIF
`( Direction = drSend )
`
`
`
`
`|AND ( AddressType = atMyAddress )
`)
`
`
`
`; IF
`( Direction = drSend )
`|
`
`
`
`
`
`, AND ( AddressType = atNoAddress )
`|
`
`
`
`
`| AND ( OriginCount = 1 )
`i
`
`| AND ( AddressRole = arFrom )
`|
`|IF (Direction = drSend)
`!
`
`
`
`
`
`
`
`
`
`| AND ( ToCount = 1 )
`i
`
`1 AND ( AddressRole = arTo )
`|
`
`
`
`
`( Direction = drSend )
`po
`i IF
`
`
`
`
`
`AND( AddressRole = ( arTo OR arCc OR arBec )) |
`
`
`
`
`
`
`[IF
`(Direction = drReceive ) AND ( IsToMe)
`I
`
`
`
`
`
`
`| AND ( AddressType = atMyAddress)
`
`
`
`lese
`iIF
`(Direction = drReceive )AND(IsToMe)
`|
`
`
`
`
`
`
`
`
`
`
`
`
`
`AND( AddressRole = ( arSender ORarFrom))
`"><
`
`
`
`
`iIF
`( Direction = drReceive )
`|
`
`
`
`
`| AND ( NOT IsToMe)
`
`
`
`
`, AND ( IsFromKnownCorresp )
`~
`
`
`
`
`
`
`i AND ( AddressType = atCorrespAddress)
`|
`
`
`
`
`
`AND ( AddressRole = ( arSender OR arFrom ) )
`|
`
`
`(FIG. 24B)
`
`
`
`(FIG. 24B)
`
`
`
`
`(FIG. 24B)
`
`
`
`(FIG. 24B)
`
`
`
`
`(FIG. 24B)
`
`
`
`(FIG. 248)
`
`
`
`©w"
`
`<omwu
`
`Yese{fo°)
`
`Page 30 of 57
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Apr.20, 2004
`
`
`
`Sheet 30 of 33
`
`
`
`
`
`US 6,725,228 B1
`
`
`
`
`[Bulk Mail Shortcut]
`
`
`Set CreateShortcut to True.
`
`
`
`
`
`
`
`
`
`
`[Confirmed Corresp Shortcut]
`
`
`
`Set IsConfirmedCorresp to True.
`
`
`
`Set CreateShortcut to True.
`
`
`
`
`
`
`
`[Pending Corresp Shortcut]
`
`
`
`Set IsPendingCorresp to True.
`
`
`
`
`
`
`Set Create Shortcut to True.
`
`
`
`
`["Me" Shortcut]
`
`
`Set CreateShortcut to True.
`
`
`
`
`Set FolderId to "Me"folder.
`
`
`
`
`
`FIG. 24B
`
`
`
`Page 31 of 57
`
`Page 31 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 31 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`Build Folder as follows:
`
`
`
`
`
`
`
`
`
`
`
`
`
`-- Set FolderName from AddressName,or from
`
`
`
`AddressString if AddressNameis empty.
`
`
`
`
`
`-- Set FolderType to ftCorresp
`
`
`
`
`
`
`-- Set IsPendingCorresp from AddressEntry
`
`
`
`
`
`
`
`
`Try to add Folder to Catalog database
`
`
`
`
`
`
`
`
`If FolderNamealready exists, generate a unique
`
`
`
`
`
`
`FolderName and then add Folder to Catalog
`
`
`Input Parameters
`
`
`database
`
`
`
`= AddressEntry
`
`
`
`
`
`*
`Save FolderId to AddressEntry
`
`Generate FolderAdded Event
`
`
`
`
`
`Read Folder from
`
`
`
`
`
`Catalog database
`
`
`
`AddAddressFolder
`
`
`
`
`
`
`
`
`
`
`
`¢
`¢
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`*
`
`
`
`
`
`
`
`
`
`
`
`
`Build Address from AddressEntry
`
`
`
`
`
`Set AddressType based on FolderType
`
`
`
`ftMe
`--> atMyAddress
`
`
`
`ftCorresp --> atCorresp
`ftBulkMail --> atBulkMail
`
`
`
`
`
`
`
`
`
`
`Add Address to Catalog database
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 25A
`
`
`
`UpgradePendingCorresp
`
`
`
`
`
`
`
`
`
`
`
` Read Folder from Catalog database
`
`
`
`
`
`
`
`
`Set IsPendingCorresp to False
`
`
`
`
`
`
`Do "UpdateFolder” as shown in FIG.1D.
`
`
`
`
`
`
`Read Address from Catalog database
`
`
`
`
`Set isPendingCorresp to False
` Input Parameters
`
`
`
`
`
`
`
`Update Address in Catalog database
`= AddressEntry
`
`
`
`
`
`
`
`
`
`
`
`FIG. 25B
`
`
`
`Page 32 of 57
`
`Page 32 of 57
`
`
`
`U.S. Patent
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 32 of 33
`
`
`US 6,725,228 B1
`
`
`
`
`
`Input Parameters
`
`
`= AddressString
`
`
`
`+ TargetFolderlId
`
`
`
`
`TargetFolderId =
`"9
`”
`
`
`FolderId of "Unsorted"?
`
`
`
`Move to
`
`~Unsorted"?
`
`
`
`
`
`Delete Address
`
`
`
`from Catalog
`database
`
`
`Read Address from
`
`
`
`
`
`Catalog database using
`
`AlternateKey1
`
`
`
`
`
`Add AddressString
`to AddressQueue
`
`
`
`
`
`
`
`
`Create Address in Catalog
`database
`
`
`
`
`
`
`Update Address in Catalog database
`
`
`
`
`
`Set FoiderId in Address to TargetFolderId
`
`
`
`
`
`Read TargetFolder from Catalog database
`
`
`
`
`Set AddressType based on TargetFolder's
`
`FolderType
`
`
`--> atMyAddress
`ftMe
`
`
`
`ftCorresp --> atCorresp
`ftBulkMail --> atBulkMail
`
`
`
`
`
`
`Set IsPendingCorresp in Address from
`
`TargetFolder
`
`
`
`
`
`
`
`
`
`
`
`FIG. 26
`
`Page 33 of 57
`
`Page 33 of 57
`
`
`
`U.S. Patent
`
`
`
`
`
`
`Apr. 20,2004
`
`
`
`
`Sheet 33 of 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`Position to first MessageSummary
`
`
`
`in Catalog database
`
`
`
`
`
`
`Get next MessageSummary in
`
`
`Catalog database
`
`
`
`
`Does any AddressString in
`
`
`
`the AddressQueue match
`
`
`
`an AddressString in the
`
`MessageSummary
`AddressList?
`
`
`
`
`
`Empty
`AddressQueue
`
`
`
`¢
`Process Shortcuts as shownin FIG. 10B
`
`
`
`
`
`
`
`
`
`* Update MessageSummary in Catalog
`
`
`
`
`databaseif IsCorresp has changed
`
`
`
`
`FIG. 27
`
`Page 34 of 57
`
`Page 34 of 57
`
`
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`1
`SYSTEM FOR MANAGING AND
`
`
`
`
`ORGANIZING STORED ELECTRONIC
`
`
`MESSAGES
`
`
`
`2
`
`
`
`
`
`
`
`Further, once an e-mail message has been received it can
`
`
`
`
`
`
`
`
`
`be difficult to find the message later, especiall