`
`
`
`
`
`
`
`(12) United States Patent
`
`US 6,725,228 B1
`(10) Patent N0.:
`
`
`
`
`
`
`
`Clark et al.
`(45) Date of Patent:
`Apr. 20, 2004
`
`US006725228B1
`
`
`
`(54)
`
`
`
`(76)
`
`
`
`(*)
`
`
`
`(21)
`
`(22)
`
`(51)
`(52)
`(58)
`
`(56)
`
`
`
`
`
`
`
`
`
`SYSTEM FOR MANAGING AND
`
`
`
`
`ORGANIZING STORED ELECTRONIC
`
`
`MESSAGES
`
`
`
`
`
`
`
`
`
`........................ 707/10
`6,167,402 A * 12/2000 Yeager
`
`
`
`
`6,182,071 B1 *
`1/2001 Fushimi ......................... 707/7
`
`
`
`
`
`6,226,630 B1 *
`5/2001 Billmers ............... 707/3
`
`
`
`
`
`
`
`......
`6,324,569 B1 * 11/2001 Ogilvie et a1.
`. 707/500
`
`
`
`
`
`
`
`6,396,513 B1 *
`5/2002 Helfman et a1.
`..... 709/206
`
`
`
`
`
`
`6,424,995 B1 *
`7/2002 Shuman ...................... 709/206
`
`
`
`
`
`6,449,615 B1 *
`9/2002 Liu et a1.
`...................... 707/10
`
`
`
`
`
`
`
`6,466,941 B1 * 10/2002 Rowe et a1.
`. 707/102
`..
`
`
`
`
`
`
`6,507,846 B1 *
`1/2003 Consens ..................... 707/100
`
`
`
`
`
`FOREIGN PATENT DOCUMENTS
`
`
`WO99/04344
`1/1999
`
`
`
`
`
`EP
`
`
`
`
`
`OTHER PUBLICATIONS
`
`
`
`
`
`
`
`
`
`
`Inventors: David Morley Clark, 920 Innes Street,
`Nelson, British Columbia V1L 5T2
`
`
`
`
`
`
`
`
`
`(CA); Thomas Wilson Gibson, 230
`
`
`
`
`High Street, Nelson, British Columbia
`
`
`
`
`
`V1L 3Z9 (CA); David Mitchell
`Bracewell, 708 Third Street, Nelson,
`
`
`
`
`
`
`
`
`
`
`
`British Columbia V1L 2R2 (CA); Jefi'
`Toy Tsao Kwan, 12 Arundel Avenue,
`
`
`
`
`
`
`
`
`
`Toronto, Ontario M4K 3A4 (CA)
`
`
`
`
`
`
`Subject to any disclaimer, the term of this
`
`
`
`
`patent is extended or adjusted under 35
`
`
`
`
`U.S.C. 154(b) by 212 days.
`
`Notice:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Microsoft Internet Explorer 1995—2001.*
`
`
`
`
`
`
`
`
`
`Dvorak, John C., Scarier Than Spam, Jan. 4, 1999, pp. 1—2.
`
`
`
`
`
`
`
`De La Cruz et al., Inside MAPI, @1996, pp. 528—541 (Table
`
`
`
`
`of Contents also included).
`
`
`
`
`
`
`MSDN Library—Apr. 1999, Messaging API (MAPI), Legal
`
`
`
`Appl. No.: 09/704,199
`
`
`
`
`
`Information, Developing a Message Store Provider.
`Filed:
`Oct. 31, 2000
`
`
`
`
`
`
`
`* cited by examiner
`Int. Cl.7 .................................................. G06F 7/00
`
`
`
`
`
`Primary Examiner—Kim Vu
`US. Cl.
`............................................ 707/102; 707/7
`
`
`
`
`
`
`
`
`Assistant Examiner—Monplaisir Hamilton
`Field of Search ................................ 707/7, 200, 2,
`
`
`
`
`
`
`
`
`
`
`
`
`(74) Attorney, Agent, or Firm—Oyen, Wiggs, Green &
`707/102
`
`Mutala
`
`
`References Cited
`
`
`U.S. PATENT DOCUMENTS
`
`
`
`4,611,280 A *
`9/1986 Linderman .................. 712/300
`
`
`
`
`4,809,158 A *
`2/1989 McCauley ........
`
`707/7
`
`
`
`
`
`5,274,805 A * 12/1993 Ferguson et a1.
`.............. 707/7
`
`
`
`
`
`5,377,354 A
`12/1994 Scannell et 211.
`
`
`
`
`5,440,734 A *
`8/1995 Wagar ........................... 707/7
`
`
`
`
`5,544,360 A
`8/1996 Lewak et 211.
`
`
`
`
`5,548,789 A
`8/1996 Nakanura
`
`
`
`............. 707/102
`5,615,367 A *
`3/1997 Bennett et a1.
`
`
`
`
`
`............. 709/207
`5,694,616 A * 12/1997 Johnson et a1.
`
`
`
`
`
`
`............. 707/100
`5,813,009 A *
`9/1998 Johnson et a1.
`
`
`
`
`
`5,899,995 A
`5/1999 Millier et 211.
`
`
`
`
`5,948,058 A *
`9/1999 Kudoh et al.
`............ 707/104.1
`
`
`
`
`
`6,009,442 A
`12/1999 Chen et 211.
`
`
`
`
`6,029,164 A
`2/2000 Birrell et 211.
`
`
`
`
`6,057,841 A
`5/2000 Thurlow et 211.
`
`
`
`
`6,073,131 A *
`6/2000 Roberti .......................... 707/7
`
`
`
`
`
`
`6,073,142 A *
`6/2000 Geiger et a1.
`..
`707/500
`
`
`
`
`
`
`
`6,088,696 A *
`7/2000 Moon et a1.
`..... 707/10
`
`
`
`
`
`
`
`
`6,154,740 A * 11/2000 Shah ............................. 707/7
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(57)
`
`ABSTRACT
`
`
`
`
`
`
`
`
`
`
`A computer-based system catalogs and retrieves electronic
`
`
`
`
`
`
`
`messages saved in a message store. The system automati-
`
`
`
`
`
`
`
`
`cally organizes each saved message into multiple folders
`based on the contents and attributes of the message, and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`implements improved methods for manually organizing
`
`
`
`
`
`
`
`
`messages. Unlike prior art systems, Where a message exists
`
`
`
`
`
`
`
`
`
`in only one folder,
`the system uses lightweight message
`
`
`
`
`
`
`
`shortcuts to display the message in multiple folders simul-
`
`
`
`
`
`
`
`taneously. The system preferably permits messages to be
`
`
`
`
`
`
`
`
`organized by: 1) basic message and attachment properties,
`
`
`
`
`
`
`
`
`e.g. date, status, attachment
`type; 2) extended message
`
`
`
`
`
`
`
`
`
`properties that the user can specify, e.g. keywords; and 3)
`
`
`
`
`
`
`correspondent or bulk mail sender/recipient, With automatic
`
`
`
`
`
`
`separation of bulk mail from correspondence. Performance
`
`
`
`
`
`
`
`and usability are improved by performing reads incremen-
`
`
`
`
`
`
`tally and by providing multiple sorting keys.
`
`
`
`
`34 Claims, 33 Drawing Sheets
`
`
`
` \
`
`
`
`
`
`
`
`61A
`
`
`
`Ill
`
`
`
`
`
`
`\\ \\ \\
`
`Email Organizer
`/
`
`
`File Edit View ] Tonls Help \ \ \
`
`
`
`.
`
`
`
`
`smiled
`\
`\
`Dale
`
`
`
`
`
`
`
`'
`HOi
`Status
`To Name
`
`
` \
`
`
`
`
`, , A _ _
`51 —\
`
`
`
`
`
`
`Actlve Mail
`7 7 _ - 7
`(14)
`
`’
`To Do (A)
`Unread (15)
`
`
`
`
`
`
`1— Today (12)
`
`
`
`Yesterday (6)
`
`
`
`
`me
`This Week
`
`
`Ellzaneln Green (2)
`52mm
`
`
`
`Bob Baxter (l)
`
`
`Forrester Research
`FDA <savea Search)
`
`
`
`
`
`Ul <kaywnrd>
`
`
`
`x45 sluay <keywaru> .—
`
`
`/
`
`
`
`2c
`6 D»Hm Status
`annespondem Bulk Mail
`Keyvmm Dale Atlashmeml Search User
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`[ I
`
`
`‘5‘ msgs DY 100
`624
`
`
`
`MAJ
`67 J
`L 69
`525 J
`
`
`
`Page 1 0f 57
`
`LG EXHIBIT 1008
`
`Page 1 of 57
`
`LG EXHIBIT 1008
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 1 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`FIG. 1A
`
`Page 2 0f 57
`
`Page 2 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`Sheet 2 0f 33
`
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`FIG. 13
`
`Page 3 0f 57
`
`Page 3 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 3 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`User Interface Device
`
`
`
`
`
`
`Message Client
`
`
`
`
`
`Transport
`
`Server
`
`
`
`Events
`
`
`
`Requests
`
`
`
`
`Message Store
`
`Server(s)
`
`
`
`'
`
`
`
`
`
`
`
`
`
`
`Outgoing Requests
`
`
`
`Store(s)
`
`
`
`
`
`
`
`
`
`
`database
`
`
`FIG. 2
`
`Page 4 0f 57
`
`Page 4 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 4 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`Date
`
`
`
`
`|---TodaY
`
`
`|"- This Week
`
`
`
`|--- ThIS Month
`Status
`
`
`|--- Received
`
`White Paper
`
`
`
`
`
`
`
`Correspondent
`
`|--- Tom Gibson
`
`
`
`Attachment
`
`
`
`|--- All Attachments
`
`
`|--- DOC
`
`
`
`Status
`
`
`
`|--- Unread
`
`
`|--- Active Mail
`
`
`
`
`Keywords
`
`
`|—-- Marketing
`
`
`|--- White Paper
`
`
`
`
`
`-'lll|
`
`Trans Ol‘t Header
`
`
`
`
`
`
`ReceiveDate: Today 10:10:05
`
`
`Direction: Received
`
`
`
`From: Tom Gibson
`
`
`To: David Clark
`
`
`
`Cc: David Bracewell
`
`
`
`
`
`
`
`
`
`
`Subject: White paper
`
`
`
`
`Here is the white paper
`Body:
`
`
`
`for your review.
`
`
`
`
`
`ttachment: White Paper.doc
`
`
`
`
`
`
`
`tatus i Organlza Iona
`Information
`
`Status: IsUnread
`
`IsActive
`
`
`
`
`
`Keywords: Marketing
`
`
`
`
`
`
`
`FIG. 3
`
`Page 5 0f 57
`
`Page 5 of 57
`
`
`
`
`
`US. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 5 0f 33
`
`
`
`US 6,725,228 B1
`
`9 C
`
`
`atalog
`
`database
`-
`
`Message
`Store(s)
`
`CLIENT COMPUTER
`
`
`
`
`
`User
`Interface
`Devnce
`
`
`
`
`Message
`Client
`
`
`
`
`
`Message
`
`Store
`Server(s)
`
`
`
`
`
`CLIENT COMPUTER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`eV
`Catalog
`data base
`
`User
`
`
`Interface
`Device
`
`
`
`
`
`
`
`
`Page 6 0f 57
`
`SERVER COMPUTER
`
`I
`I
`H Server(s)
`
`
`
`
`Message -
`
`
`
`
`Message
`Store
`
`
`Store(S)
`
`
`
`SERVER COMPUTER
`
`
`
`
`Message
`Store
`
`Server(s)
`
`
`
`
`
`g
`
`
`Message
`
`Store(5)
`
`
`CLIENT COMPUTER
`
`
`
`
`
`
`
`Page 6 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 6 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`FolderId
`
`
`
`MessageId
`AttachId
`
`
`‘ FolderId
`
`
`
`V
`
`
`
`<attachment data>
`
`StoreLink
`
`StoreLinkId
`
`StoreId (F
`
`
`AttachSummary
`52
`MessageSummarv
`Message”
`4 4 Eggslafild
`4 StoreLinkId (FK
`‘ c
`StoreMessageId (FK
`StoreAttachId (FK)
`
`
`Message Store
`
`
`
`
`54
`
`
`Message
`StoreMessageId
`
`
`
`
`
`
`
`Attachment
`
`
`4 StoreAttachId
`
`
`
`[— 55
`
`
`
`
`FIG. 5A
`
`Page 7 0f 57
`
`Page 7 of 57
`
`
`
`
`
`US. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 7 0f 33
`
`
`
`US 6,725,228 B1
`
`50
`
`
`
`
`
`
`
`Catalog / Message Store
`
`
`
`
`
`AddressId
`
`>
`
`
`
`FolderId
`
`
`
`MessageId
`AttachId
`A
`
`
`
`‘ FolderId
`
`V V
`
`<attachment data>
`
`MessageSummary
`
`
`MessageId
`
`
`
`
`
`52.
`
`
`
`AttachSummary
`
`MessageId
`
`AttachId
`
`Messageld
`
`
`
`Attachment
`MessageId
`‘ AttachId
`
`
`
`[— 55
`
`
`
`
`
`
`
`
`FIG. SB
`
`Page 8 0f 57
`
`Page 8 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 8 0f 33
`
`
`
`US 6,725,228 B1
`
`
`60
`
`
`
`64
`
`
`
`65
`
`
`
`66
`
`
`
`
`_====
`Murmur—=9-
`
`File
`
`Edit
`
`View
`
`ToolsH—Ip
`
`
`
`
`
`
`
`
`
`61
`
`
`
`
`
`
`
`
`Active Mail
`(14)
`To Do (4)
`
`
`
`Unread (18)
`
`
`
`
`
`
`Today (12)
`
`
`
`Yesterday (6)
`This Week _rom:
`
`
`
`
`
`Elizabeth Green (2)
`
`
`Bob Baxter (1)
`
`Forrester Research
`
`
`PDA <saved search>
`
`
`
`
`
`Ui <keyword>
`
`
`
`X45 Study <keyword>
`
` 62C
`
`
`
`
`
`
`
`
`
`
`"mm-in
`
`
`———
`15 msgs of 100
`
`69
`62
`
`
`
`
`
`
`
`
`61A
`
`
`
`
`
`
`FIG. 6
`
`Page 9 0f 57
`
`Page 9 of 57
`
`
`
`
`
`US. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 9 0f 33
`
`
`
`US 6,725,228 B1
`
`76
`
`
`
`
`
`
`
`
`
`THIRD LAYER - Correspondence and Bulk Mail Organization
`
`
`
`
`
`0
`Separate Correspondence from Bulk Mail
`
`
`
`- Automatic organization of Correspondence
`
`
`
`
`
`Bulk Mail organization by sender or recipient
`.
`
`
`
`
`
`
`- Manage Correspondent and Bulk Mail folders
`
`
`
`
`
`
`
`
`
`
`
`
`
`SECOND LAYER - 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
`
`
`
`Improved filtering mechanisms
`
`
`
`Improved handling of search results
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`72
`
`
`
`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
`
`
`
`Incremental read of Folder contenm
`
`
`
`
`
`
`
`
`
`FIG. 7
`
`Page 10 of 57
`
`Page 10 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 10 0f 33
`
`
`
`US 6,725,228 B1
`
`
`56
`Folder
`
`
`
`
`FolderId
`Shortcut
`
`
`
`
`
`
`MessageId
`
`
`
`
`ParentFolderId
`AttachId
`AlternateKeyl
`
`
`
`
`= ParentFoIderId
`£0587?”
`FolderId
`
`
`
`
`0 er ype
`
`
`AlternateKeyZ
`ISHOt
`A gfiéflumn
`
`
`
`
`
`
`
`
`
`
`
`= ParentFolderId
`FolderDateTime
`‘ S rtD'
`ct' n
`
`FolderSortColumn
`0.
`"'3 '.°
`
`
`
`
`
`TnggerActIon
`+ FolderName
`FolderSofiDirection
`
`
`
`
`
`(uppercase)
`TriggerDateTime
`Shomumunt
`
`
`
`
`
`
`
`AlternateKey3
`LCJnreadgti‘urg
`t
`$23;
`tC
`
`
`
`
`
`
`
`orresp 0 cu oun
`= IsHot
`
`IsUserShortcut
`UnreadCorrespCount
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`57
`
`
`
`
`
`
`
`
`
`
`
`AlternateKeyl
`
`
`= FolderId
`+ SortKe
`Y
`
`
`AlternateKeyZ
`.
`.
`
`= TnggerDateTIme
`
`
`
`
`
`
`
`
`
`
`53
`
`
`
`
`
`
`
`
`
`MessageSummary
`
`
`
`MessageId
`AttachSummary
`
`
`
`
`MessageId
`FolderEchudeList
`
`
`
`IsUnread
`4 AttachId
`
`
`
`
`
`AttachType
`IsCorresp
`
`
`
`AttachName
`MessageDateTime
`
`
`
`
`DisplayNames
`AttachSize
`
`
`
`Subject
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 8
`
`Page 11 0f 57
`
`Page 11 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`Sheet 11 0133
`
`
`
`US 6,725,228 B1
`
`24W
`
`
`
`Message Store Server
`
`291
`
`Catalog Server
`
`
`
`
`Inggming Event§
`
`
`
`271
`
`Message Client
`
`
`
`
`Ingoming Reguegfi
`
`
`
`o—MessageAdded
`
`AddFolder———o
`
`o—MessageDeIeted
`
`
`
`
`e—MessageChanged
`ChangeFoIder——o
`
`
`DeleteFolder—o
`
`ReadFoIder———o
`
`ReadFoIderSubtree—o
`
`
`ReadFoIderContents—o
`
`ChangeFolderSortKey—o
`
`
`DeleteShortcut——o
`
`DeleteFolderShortcuts—o
`
`ReadMessageSummary—o
`
`
`
`
`
`
`
`
`
`
`
`ReadHotFolders—o
`
`AddShortcut————-o
`
`ReadAttachSummary—o
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Qutgging Reguesj;
`
`4——ReadMessage
`
`
`
`
`
`
`
`
`Qutgoing Events
`
`
`
`FolderAdded—>
`
`
`
`
`
`
`
`
`
`
`FolderChanged——->
`
`FolderDeIeted—>
`
`
`
`FolderHotChanged—>
`
`
`ShortcutAdded——->
`
`ShortcutDeleted—b
`ShortcutSortKeyChanged—b
`
`SummaryChanged—>
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 9
`
`Page 12 0f 57
`
`Page 12 of 57
`
`
`
`
`
`US. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 12 0f 33
`
`
`
`US 6,725,228 B1
`
`ShortcutEntry
`
`
`
`
`Memory structures
`
`
`
`
`
`ShortcutAction
`100 1
`
`
`ShortcutArray
`EXC'UdEd
`OldShortcut
`
`
`Shortcut
`
`
`
`[ AttachSummary ]
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 10A
`
`
`
`
`
`Input Parameters
`
`= MessageSummary
`
`
`
`
`
`
`
`
`
`
`Read all 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)
`
`
`
`Process each ShortcutEntry as shown in FIG. 11A.
`
`
`
`
`
`
`
`
`
`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. 108
`
`
`
`Page 13 of 57
`
`Page 13 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 13 0f 33
`
`
`
`US 6,725,228 B1
`
`AddChangeShortcut
`
`
`
`
`
`
`
`
`Input Parameters
`
`
`= MessageId
`
`
`+ AttachId
`
`
`+ FolderId
`
`
`+ TriggerAction
`
`+ TriggerDateTime
`+ IsUserShortcut
`
`
`
`
`
`
`
`Add ShortcutEntry to
`
`
`ShortcutArray. Set
`
`
`
`
`
`
`
`
`Search ShortcutArray for
`
`
`matching Shortcut or
`
`
`OldShortcut (using
`
`
`MessageId + AttachId +
`
`
`
`FolderId as search key)
`
`ValidateFolderListElemen
`
`
`
`
`
`
`
`FIG. 10C
`
`
`
`
`
`
`Read Folder from Catalog
`database
`
`
`
`
`ShortcutAction to saAdd.
`FolderExcludeList
`
`If FolderDateTime in element
`
`
`doesn't match value in
`
`
`
`
`
`
`Folder, delete element from
`
`
`
`
`
`
`
`FIG. 10D
`
`
`
`Page 14 0f 57
`
`Page 14 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 14 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`110
`
`
`
`
`
`
`
`Input Parameters
`
`
`= ShortcutEntry
`
`1 1 1
`
`
`
`
`
`
`Read Folder from Catalog
`database
`
`
`
`
`DeleteShortcut
`
`
`Shortcut
`
`
`
`
`
`
`With OldShortcut, do
`Action?
`"DecrementFolderCounts"
`
`
`
`
`
`(FIG. 11B)
`
`
`
`
`- Delete Shortcut from
`
`
`
`
`
`
`Catalog database
`
`
`
`
`0 Generate ShortcutDeleted
`Event
`
`
`
`
`Do "UpdateFolder" (FIG.
`-
`
`
`
`11a)
`
`
`UpdateShortcut
`
`
`
`
`
`
`
`
`
`
`
`Do "BuildShortcut" (FIG. 118)
`
`
`.
`If Shortcut is same as OldShortcut, then
`
`
`
`
`
`
`Exit
`
`
`- With OldShortcut, do
`
`
`
`
`112
`"DecrementFolderCounts" (FIG. 118)
`
`
`
`
`
`.Ad 31. Ell mm m
`
`
`
`
`
`- With Shortcut, do "IncrementFoIderCounts"
`
`
`118)
`
`
`(FIG. 118)
`_
`, W‘ h Sh rtc t,
`
`
`
`
`
`- Update Shortcut In Catalog database
`"Irlitcremgnt:oldce?Counts"
`
`
`
`
`
`
`
`
`
`
`If the SortKey has changed, generate a
`(FIG. 113)
`.
`
`
`
`
`
`
`
`
`ShortcutSortKeyChanged Event
`
`~
`Add Shortcut to Catalog
`
`
`
`
`
`
`
`-
`Do "UpdateFolder" (FIG. 118)
`
`database
`
`
`
`
`- Generate ShortcutAdded
`
`
`
`
`Event
`
`
`
`
`
`
`
`Do "UpdateFolder" (FIG.
`
`
`
`Set ShortcutTimer as shown in FIG. 13
`
`
`
`
`
`115
`
`
`
`
`FIG. 11A
`
`
`
`Page 15 of 57
`
`Page 15 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 15 0f 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. 113
`
`
`
`Page 16 of 57
`
`Page 16 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 16 0f 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
`
`
`4
`18
`
`
`22
`1
`
`
`23
`1
`
`
`MessageId
`AttachId
`
`FolderId
`
`
`SortKey
`SortColumn
`
`
`TriggerAction
`TriggerDateTime
`
`Flags
`
`IsCorresp
`
`
`
`
`
`Bit
`
`
`
`
`0
`1
`2
`
`
`Length Field
`
`
`
`
`1
`1
`1
`
`
`SortDirection
`IsUnread
`
`IsUserShortcut
`
`
`
`
`
`FIELD TYPE
`
`
`
`
`SORT KEY FORMAT
`
`
`
`
`
`Notes
`
`
`
`
`
`_
`,
`UnicodeStnng
`
`
`
`_
`_
`
`AnertrIng
`
`
`
`UCW1
`
`
`
`UCWZ
`
`
`
`UCW3
`
`
`
`
`
`
`Unicode Character Weights of
`
`
`
`first 3 characters of string.
`
`C1
`
`
`
`C2
`
`
`
`C3
`
`
`
`C4
`
`
`
`C5
`
`
`
`C6
`
`
`
`Values of first 6 characters of
`
`
`
`
`string.
`
`DateTime
`
`
`
`YY
`
`
`
`MM
`
`
`
`DD
`
`
`
`hh
`
`
`
`mm
`
`
`
`55
`
`
`
`
`
`W = Year _ 1950
`
`
`
`Enumeration OR
`
`BOOIean
`
`
`(sdDescending)
`
`Enumeration OR
`
`Boolean
`.
`
`(sdAscendmg)
`
`
`
`Value
`
`
`
`YY
`
`
`
`MM
`
`
`
`DD
`
`
`
`hh
`
`
`
`W = Year _ 1950
`
`
`
`
`
`Value
`
`
`
`255
`— YY
`
`
`
`
`
`
`255
`- MM
`
`
`
`
`
`
`
`255 W = Year _ 1950
`255
`
`
`- DD - hh
`
`
`
`
`Integer32 0R
`
`Integer16
`
`
`
`
`
`
`
`
`
`
`
`___-____-_----- Bits ..............
`Bits are numbered with 0 being
`most significant.
`
`
`
`
`
`
`
`
`
`
`31-24 23-16
`the least significant and 31 the
`
`
`
`
`FIG. 12
`
`Page 17 of 57
`
`Page 17 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 17 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`Startup
`Processing
`
`
`
`Initialize ShortcutTimer
`
`to inactive state
`
`
`
`
`
`
`Read first Shortcut
`
`
`
`
`
`from Catalog database
`
`
`using AIternateKeyZ
`
`
`
`Shortcut
`
`Found?
`
`
`generate an internal DeleteShortcut Request.
`
`135
`
`
`
`AddChange
`Shortcut
`
`
`
`
`
`
`If TriggerDateTime is non-zero and is
`less than ShortcutTimer, reset
`
`
`
`
`
`
`ShortcutTimer to TriggerDateTi me
`
`137
`
`Shortcut
`Timer
`
`
`.
`
`-
`
`
`
`
`
`
`Read Shortcut from Catalog database
`
`
`
`If TriggerAction is taDeleteShortcut then
`
`
`
`
`
`
`
`
`
`FIG. 13
`
`Page 18 of 57
`
`Page 18 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 18 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`Start
`
`
`
`.
`
`
`
`.
`
`sd Descending
`
`
`
`
`
`
`.
`Request Parameters
`sdAscendIng
`= FolderId
`
`
`
`
`+ SortKey
`Uziligtlflidsaertid
`Position at first
`+ SortDirection
`
`
`
`
`
`
`
`
`+ RequestCount
`.
`.
`Shortcut in Folder
`posmon on Shortcut
`.
`
`
`
`
`
`
`
`
`+ CorrespOnIy
`AlternateKey1
`usmg AlternateKeyl
`
`
`
`143A
`
`
`
`Position at last
`
`
`
`
`Shortcut in Folder
`.
`
`
`
`usmg AIternateKeyl
`
`
`
`145A
`
`
`
`Set IsEOF to
`
`
`True
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Is (CorrespOnly= True)
`AND (IsCorresp-— False) ?
`
`
`
`Is (ContentCount >=
`
`
`RequestCount) AND
`
`
`
`(Current SortKey NOT =
`
`
`Previous SortKey)?
`
`Read
`Enough?
`
`
`
`Sort ContentArray in
`
`
`
`memory, using values
`
`
`from MessageSummary
`
`
`and AttachSummary
`
`
`
`BUIIdRe'I
`
`
`
`
`Read related MessageSummary from Catalog
`database
`
`
`
`
`
`
`If AttachId is non-zero, read related
`
`
`
`
`a AttachSummary from Catalog database
`
`
`
`
`Add MessageSummary and AttachSummary (or
`
`
`Reply parameters
`NULL) to ContentArray
`
`
`
`
`= ResultCode
`Increment ContentCount
`
`
`
`
`
`
`
`
`+ SortKey
`Set SortKey in Reply from the current Shortcut
`
`
`
`+ IsEOF
`SortKey
`
`
`+ ContentCount
`
`
`
`
`+ ContentArray
`
`
`
`
`
`= Array of [ MessageSummary + (AttachSummary 0R NULL) ]
`
`
`
`
`
`
`
`
`FIG. 14
`
`Page 19 of 57
`
`Page 19 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 19 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`Read Folder from Catalog
`
`
`
`152
`
`
`
`
`
`Request Parameters
`= FolderId
`
`
`+ FolderSortColumn
`
`
`+ FolderSortDirection
`
`
`
`
`Position at first Shortcut
`
`
`
`
`
`in Folder using
`
`AlternateKeyl
`
`
`
`Read next Shortcut in Folder
`
`
`
`
`
`
`15
`
`5
`
`
`.*Yes
`
`
`
`
`
`
`
`The underlying data type
`for the FolderSortColumn
`
`
`
`
`End of
`
`Folder?
`
`
`
`No
`
`
`
`Enumeration
`OR Boolean
`
`
`
`
`
`
`Data Type?
`
`
`
`156
`
`
`
`157
`
`
`
`Update Folder in Catalog database
`
`
`
`
`Need to build SortKey if
`
`FolderSortColumn
`
`
`NOT = SortColumn
`
`
`OR FolderSortDirection
`
`
`NOT = SortDirection
`
`
`
`
`
`
`Need to build
`
`SortKey if
`
`FolderSortColumn
`
`NOT = SortColumn
`
`
`
`
`
`
`
`
`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
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 20 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`Contains all tables and fields of Base Layer, plus the following:
`
`
`
` Direction
` IsToDo
`
`AttachSummary
`
`53
`
`
`
`
`
`
`
`
`
`SendState
`
`IsDeIeted
`
`IsActive
`
`IsKept
`IsTagged
`
`KeywordList
`
`
`
`
`
`
`FIG. 16
`
`Page 21 0f 57
`
`Page 21 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 21 0f 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
`
`
`
`| I I I I I I I I I I I I I I I I I I I I |
`
`
`FIG. 17
`
`Page 22 of 57
`
`Page 22 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 22 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`
`
`Contains all tables and fields of Base Layer and Second Layer, plus the following:
`
`
`
`Folder
`
`
`
`56
`
`
`
`IsPendingCorresp
`
`
`
`
`
`
`
`57
`
`
`
`
` Address
`
`
` AddressList
`
`
`
`
`
`AddressId
`
`
`FolderId
`
`
`
`AddressString
`
`AddressType
`
`IsPendingCorresp
`
`58
`
`
`
`MessageSummary
`
`
`
`
`
`
`52 AttachSummary
`
`
`
`53
`
`
`
`
`
`
`
`
`AlternateKeyl
`
`= AddressString
`
`(uppercase)
`
`
`AlternateKeyZ
`
`
`= FolderId
`
`
`FIG. 18
`
`Page 23 of 57
`
`Page 23 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 23 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`Contains all Folders in Base Layer and Second Layer, plus the following:
`
`
`
`
`<Root>
`
`|--- Correspondents
`
`
`|--- Me
`l
`
`
`
`
`
`|--- * Automatically created Correspondent folders
`|
`
`
`
`
`
`
`|-—- * User created Correspondent folders
`|
`
`
`
`
`--- Bulk Mail
`
`
`
`|--- Unsorted
`
`
`
`
`
`
`|--- * User created Bulk Mail folders
`
`
`
`
`
`
`
`I |
`
`|
`|
`
`
`FIG. 19
`
`Page 24 0f 57
`
`Page 24 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 24 0f 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 Sewer
`
`
`
`
`Catalog Server
`
`
`
`
`Message Client
`
`
`
`
`Incoming Reguegs
`
`
`
`
`AddMyAddress—o
`ReadFolderAddresses—o
`
`MoveAddress——o
`
`ProcessAddressQueue—o
`
`
`
`
`
`
`
`FIG. 20
`
`Page 25 of 57
`
`Page 25 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 25 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`
`AddressEntry
`217
`d
`R I
`
`
`
`—/
`A
`es
`
`
`
`
`
`
`AddressArray/\
`dr 5 0‘3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG . 2 1A
`
`
`
`
`
`218
`
`_
`
`
`
`Phase 1 Processmg
`
`
`
`
`—————— {IHcFer-ngnfi? UdErEsER-élg ; ?£;rs_e;d;r—OE;rFr;n: )_)— _ 1..J
`
`
`
`------------------------------- 1
`
`
`
`
`
`_l
`‘ * ‘ ~ J Increment IF ( AddressRole = arTo )
`I
`' ————————————————————————————
`
`
`
`
`
`
`StateCounters
`
`OriginCount
`
`ToCount
`ShortcutCount
`
`
`
`
`
`
`FIG. 213
`
`
`
`Page 26 of 57
`
`Page 26 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 26 0f 33
`
`
`
`US 6,725,228 B1
`
`
`Phase 1 Processing
`
`
`
`StateFlags
`
`/
`
`
`
`
`
`
`:
`: Set to True
`
`
`
`
`
`,
`( Direction = drSend )
`IF
`I
`
`
`
`
`I
`,4 AND ( AddressType = atMyAddress )
`
`
`
`
`
`I
`AND ( AddressRole = arFrom )
`'
`x
`l ____________________________ _J
`
`
`
`219
`,
`
`
`
`
`
`:
`: Set to True
`/
`
`
`
`
`
`
`I
`( Direction = drReceive)
`IF
`/
`J
`
`
`
`
`
`
`:
`// : AND ( AddressType = atMyAddress )
`
`
`
`
`
`
`
`AND ( AddressRole = arTo OR arCc 0R achc )
`l ____________________________ J
`
`
`
`
`
`
`IsBquMail
`
`
`
`
`
`ISFromKnowr'COWESP
`
`IsToKnownCorresp
`
`‘
`
`\
`
`
`
`
`
`r ———————————————————————————— 1
`
`
`
`
`
`‘\\\ISettoTrue
`I
`
`
`
`
`:
`IF ( AddressType = atBulkAddress )
`J
`I ———————————————————————————— 'i
`I
`
`
`
`
`\
`\\ \ .SettoTrue
`
`
`
`
`
`\
`4
`IF
`(AddressType = atCorrespAddress )
`
`
`
`
`
`:I
`
`
`
`
`
`
`
`I ____________________________
`
`
`
`\\ | Set to True
`I
`
`
`
`
`‘i
`IF
`(AddressType = atCorrespAddress )
`
`
`
`
`
`AND ( AddressRole = ( arTo or arCc or achc ) )
`:
`
`1l
`
`
`FIG. 21C
`
`
`
`Page 27 of 57
`
`Page 27 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 27 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`Input Parameters
`
`= MessageSummary
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Add Address information to
`
`
`
`
`AddressEntry
`
`
`Set StateFIags
`
`
`
`
`FIG. 22
`
`Page 28 of 57
`
`Page 28 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 28 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`2
`
`
`
`
`
`From Phase 1
`
`
`
`
`Get next AddressEntrY in
`
`AddressArray
`
`End of
`
`
`Array?
`
`No
`
`
`
`
`
`
`Apply Corresp/Bulk Mail Rules to
`
`
`
`AddressEntry as shown in FIG. 24
`
`239
`
`
`
`Create
`
`Shortcut?
`
`
`
`
`
`(— 240"
`
`
`Do "AddAddressFolder"
`Yes
`as shown in FIG. 25A
`
`
`
`
`
`240
`
`
`
`
`
`r— 241A
`
`241
`
`
`
`
`
`.
`
`
`
`IF
`( IsPendingCorresp)
`
`AND ( IsConfirmedCorresp)
`
`
`
`to NOT IsBquMaiI
`
`
`Do
`"UpgradePendingCorresp"
`as shown in FIG. 253.
`
`
`
`
`
`
`
`-
`
`
`
`-
`
`
`
`
`Do "AddChangeShortcut" as
`shown in FIG. IOB.
`
`
`
`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
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 29 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`(IsBquMaiI )
`I IF
`I AND ( AddressType—- atBquAddress )
`
`I
`" \ \
`
`
`
`
`
`I
`.' IF
`( IsBulkMaiI ) AND ( IsToMe )
`
`
`
`
`
`I
`I AND ( IsFromKnownCorresp )
`
`
`
`L e
`|AND ( Direction = drReceive)
`
`
`
`:
`IAND ( AddressType-- atCorrespAddress)
`
`
`
`
`
`
`I AND ( AddressRole-— ( arSender OR arFrom) )
`I
`
`
`
`
`
`
`
`
`
`
`
`(FIG. 243)
`
`
`
`
`
`Yes».
`
`(FIG. 243)
`
`
`
`
`Yes».
`
`(FIG. 24B)
`
`
`
`
`(FIG. 24B)
`
`
`
`Yes».
`
`(FIG. 248)
`
`
`
`I
`( Direction = drSend )
`I
`IAND ( AddressType-— atNoAddress )
`
`
`
`
`
`I
`IAND ( OriginCount-— 1 )
`:
`I AND ( AddressRoIe— arFrom)
`
`
`
`
`'
`
`
`
`IAND (ToCount—- 1 )
`I
`
`
`
`
`'AND ( AddressRole—- arTo)
`I
`
`
`
`
`
`I_____
`( Direction = drSend )
`I IF
`
`
`
`
`
`
`I AND ( AddressRoIe—— ( arTo OR arCc OR achc ) )
`'
`
`
`
`
`
`
`
`
`
`
`( Direction = drReceive ) AND ( IsToMe)
`I IF
`
`
`
`I AND ( AddressType = atMyAddress )
`
`
`
`I
`
`
`
`‘ \ x \
`
`
`
`
`
`
`
`
`
`
`I
`( Direction = drReceive ) AND ( IsToMe )
`IIF
`
`
`
`
`
`
`"\ \
`: AND ( AddressRole = ( arSender OR arFrom ) )
`
`
`
`
`
`
`
`
`I
`I IF
`( Direction-— drReceive)
`
`
`
`
`'AND ( NOT IsToMe)
`I
`IAND ( IsFromKnownCorresp )
`I\
`
`
`
`
`
`
`I AND ( AddressType—- atCorrespAddress)
`I
`
`
`
`
`
`lAND ( AddressRole—- ( arSender OR arFrom ))
`J
`FIG. 24A NoA».
`
`
`
`
`
`
`
`‘ \
`
`
`
`Page 30 of 57
`
`I ' IF
`Yes». IIF (Direction—_ drSend )
`
`
`
`
`I
`'
`}’
`
`
`II
`
`
`
`
`
`
`
`
`
`
`
`( IsBquMail )AND ( IsFromMe)
`I IF
`
`
`' AND ( IsToKnownCorresp )
`AND ( Direction-_ drSend)
`
`
`
`
`
`
`
`I AND ( AddressType-—— atCorrespAddress)
`
`
`
`
`
`I AND ( AddressRole—- ( arTo OR arCc OR achc ) )—l
`_________________________ 1 ,
`
`
`
`( IsBquMail )
`I”
`: IF
`
`
`
`( Direction-— drSend )
`:IF
`
`
`
`
`ILAND ( AddressType—— atMyAddress)
`
`
`
`
`
`
`
`Page 30 of 57
`
`
`
`
`US. Patent
`
`
`
`Apr. 20, 2004
`
`
`
`
`
`
`
`Sheet 30 0f 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. 243
`
`
`
`Page 31 of 57
`
`Page 31 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 31 of 33
`
`
`
`US 6,725,228 B1
`
`AddAddressFolder
`
`
`
`
`
`
`
`
`
`
`FolderId
`
`
`
`= 0?
`
`
`
`
` Input Parameters
`
`
`
`
`
`
`= AddressEntry
`No
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Build Address from AddressEntry
`
`
`
`
`
`
`Set AddressType based on FolderType
`
`
`
`
`
`ftMe
`--> atMyAddress
`
`
`
`fiCorresp --> atCorresp
`ftBulkMail --> atBquMail
`
`
`
`
`
`
`
`
`
`Add Address to Catalog database
`
`
`
`
`
`Build Folder as follows:
`
`
`
`
`
`
`
`
`
`
`
`
`-- Set FolderName from AddressName, or from
`
`
`
`
`AddressString if AddressName is empty.
`
`
`
`
`
`-— Set FolderType to ltCorresp
`
`
`
`
`
`-- Set IsPendingCorresp from AddressEntry
`
`
`
`
`
`Try to add Folder to Catalog database
`
`
`
`
`
`If FolderName already exists, generate a unique
`
`
`
`
`
`
`FolderName and then add Folder to Catalog
`database
`
`
`
`Save FolderId to AddressEntry
`Generate FolderAdded Event
`
`
`
`
`-
`-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Read Folder from
`
`
`
`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. 253
`
`
`
`Page 32 of 57
`
`Page 32 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 32 0f 33
`
`
`
`US 6,725,228 B1
`
`
`
`
`
`Input Parameters
`
`
`= AddressString
`
`+ TargetFolderId
`
`
`
`
`TargetFolderId =
`
`
`..-,
`..
`
`
`FolderId of Unsorted .
`
`Move to
`
`"Unsorted"?
`
`
`
`Delete Address
`
`
`
`from Catalog
`database
`
`
`
`
`
`
`
`Read Address from
`
`
`Catalog database using
`
`AlternateKeyl
`
`
`
`
`
`Add AddressString
`
`
`to AddressQueue
`
`
`Address
`Found?
`
`
`
`
`Create Address in Catalog
`data base
`
`
`
`
`
`
`
`
`Set FolderId in Address to TargetFolderId
`
`
`
`
`
`Read TargetFolder from Catalog database
`
`
`
`
`Set AddressType based on TargetFolder's
`
`FolderType
`
`
`--> atMyAddress
`l’cMe
`
`
`
`ftCorrasp --> atCorresp
`l’CBulkMail --> atBulkMail
`
`
`
`
`
`
`Set IsPendingCorresp in Address from
`
`TargetFolder
`
`
`
`
`
`
`
`
`Update Address in Catalog database
`
`
`
`
`
`
`
`Page 33 of 57
`
`Page 33 of 57
`
`
`
`
`US. Patent
`
`
`
`
`
`Apr. 20, 2004
`
`
`
`
`Sheet 33 0f 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?
`
`
`database if IsCorresp has changed
`
`
`Empty
`AddressQueue
`
`
`
`-
`
`Process Shortcuts as shown in FIG. IOB
`
`
`
`
`
`
`
`
`
`- Update MessageSummary in Catalog
`
`
`
`
`
`
`
`
`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, especially if there are
`
`
`
`
`
`
`
`
`many folders into which the message could have been
`
`
`
`
`
`
`
`
`placed. This is frustrating and inefficient for the user.
`
`
`
`
`
`
`
`
`Some current electronic mail software is capable of
`
`
`
`
`
`
`filtering incoming e-mail messages by applying a series of
`
`
`
`
`
`
`
`
`rules. The filtering rules m