throbber

`
`
`
`
`
`
`
`(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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket