具体实践方法
本发明原理提供对电子消息有关数据的有效存储和访问。一般而言,根据电子消息模式分级结构创建电子消息。电子消息可这样创建,使得某些数据字段(例如主题字段、参与者字段、重要性字段等)甚至可在不同类电子消息之间(例如电子邮件消息和即时消息之间)共同定义,并可单独定义其它在不同类电子消息之间不同的数据字段,例如对特定消息协议和/或特定消息应用程序专用的数据字段(例如新闻组公告的PostID,以及电子邮件消息的删除字段)。因此,电子消息可具有与其它电子消息公共的某些字段,以及与其它电子邮件不同的某些字段。具有某些共同定义字段和其它不同定义字段促进了电子消息的存储和访问,同时也便于与现有消息协议和消息应用程序的消息兼容性。
本发明范围中的诸实施例包括携带或具有存储其上的计算机可执行指令或数据结构的计算机可读介质。这种计算机可读介质是任何可由通用或专用计算机系统访问的可用介质。作为示例,但非限制,这种计算机可读介质可包括物理存储介质,诸如RAM、ROM、EPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置、或任何可用来以计算机可执行指令、计算机可读指令、数据结构的形式实现或存储所需程序代码,以及可由通用或专用计算机系统访问的其它介质。
在本描述及其后权利要求书中,“网络”被描述为使能计算机系统和/或模块之间电子数据传输的一个或多个数据链路。当信息经网络或另一到计算机系统的通信连接(硬接线的、无线的、或硬接线或无线的组合)传递或提供时,该连接被专门视为计算机可读介质。因而,任何这种连接被专门称为计算机可读介质。以上组合也应包括于计算机可读介质的范围中。计算机可执行指令包括例如使通用计算机系统或专用计算机系统执行某功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制的、诸如汇编语言的中间格式指令、或甚至源代码。
在本描述及其后权利要求书中,“计算机系统”被定义为一起工作以对电子数据执行操作的一个或多个软件模块、一个或多个硬件模块、或其组合。例如,计算机系统的定义包括个人计算机的硬件组件、以及诸如个人计算机操作系统的软件模块。这些模块的物理布局并不重要。计算机系统可包括通过网络耦合的一个或多个计算机。类似地,计算机系统可包括内部模块(诸如存储器和处理器)一起工作以对电子数据执行操作的单个物理装置(诸如移动电话或个人数字助理“PDA”)。
在本描述及其后权利要求书中,“模式”被定义为多个计算机系统之间共享的词汇表的表达,它使多个计算机系统能根据所表达的共享词汇表来处理文档。例如,可扩展标记语言(“XML”)模式可使用XML模式语言的模式结构(例如名称/值对)来定义并描述一类XML文档。可使用这些模式结构来限制并记录在XML文档中使用的数据类型、元素及其内容、属性及其值、实体及其内容、以及符号的含义、使用及关系。因而,任何可访问XML模式的计算机系统可根据XML模式来处理XML文档。此外,任何可访问XML模式的计算机系统可编写或更改由其它也可访问该XML模式的计算机系统和/或消息处理器所使用的XML文档。
模式被定义成包括文档类型定义(“DTD”),诸如以“.dtd”扩展结束的DTD文件。模式还被定义成包括万维网协议(“W3C”)XML模式,诸如以“.xsd”扩展结束的XML模式文件。然而,实际上,特定DTD或XML模式的文件扩展并不重要。可利用模式来定义实际上任何数据类型,包括逻辑、二进制、八进制、十进制、十六进制、整数、浮点数、字符、字符串、用户定义数据类型、以及用以定义数据结构的这些数据类型的组合。用户定义数据类型的某些示例是表示日期和时间数据的日期时间数据类型、以及表示诸如电话号码、电子邮件地址、即时消息地址等电子地址数据的EAddress数据类型。数据类型(或实体)也可被定义成引用或链接到模式分级结构中的其它数据类型(或实体)。
本领域技术人员将理解,本发明可在带有许多类计算机系统配置的网络计算环境中实践,包括个人计算机、膝上型计算机、手持式装置、多处理器系统、基于微处理器或可编程的消费电器、网络PC、迷你计算机、大型计算机、移动电话、PDA、寻呼机等等。本发明还可在分布式系统环境中实践,其中通过网络链接(通过硬接线数据链接、无线数据链接、或通过硬接线和无线数据链接的组合)的本地和远程计算机系统都执行任务。在分布式系统环境中,程序模块可位于本地和远程存储器存储装置中。
图1示出了根据本发明原理便于有效存储和访问电子消息相关数据的网络架构100和一般模式分级结构150。网络架构100包括计算机系统102、计算机系统109、数据库114以及网络121。计算机系统102和计算机系统109由相应链路106相连。计算机系统102和计算机系统109可经链路106交换电子消息(例如电子邮件消息、即时消息、传真消息、新闻组公告、语音消息等)。例如,可能计算机系统109是存储电子消息的消息服务器。不时地,计算机系统102可连接到计算机系统109以下载电子消息。
计算机系统109通过链路123与数据库114相连。数据库114可以是存储多个不同类型数据库条目的数据库。例如,联系人贮仓182可存储表示联系人(个人、机构、或公司)的联系人条目,文件夹贮仓183可存储表示存储其它类型条目(例如电子消息)的文件夹的文件夹条目,消息贮仓184可存储表示电子消息的消息条目,而文档贮仓186可存储表示各种文档的文档条目等。存储在数据库中的数据库条目可包括根据模式分级结构150的模式定义的数据字段。联系人贮仓182之前和文档贮仓186之后的三个句号(省略号)指示在数据库114中可包括其它贮仓(可能存储其它不同类型的数据库条目)。
计算机系统109通过链路118与网络121相连。网络121可以是局域网(“LAN”)、广域网(“WAN”)、甚至因特网。计算机系统109可经链接118从与网络121相连的其它计算机系统接收和发送数据。计算机系统102、计算机系统109、以及可能与网络121相连的其它计算机系统可访问包括在模式分级结构150中的模式。
模式分级结构150通常表示用于定义电子消息的数据格式。表示电子消息(以及数据库114中的其它类型条目)的消息条目可根据基本条目模式151进行定义。一般而言,基本条目模式可定义用以区分一数据条目与另一数据条目的数据字段(例如全局唯一的ID以及显示名称)的数据格式。相应地,存储在消息贮仓184中的消息条目(以及存储在联系人贮仓182、文件夹贮仓183、以及文档贮仓186中的条目)可包括根据基本条目151定义的一个或多个数据字段。
消息模式152定义对多个不同类电子消息共同的一个或多个数据字段(例如消息主题、消息大小等)的数据格式。消息模式152可定义一共同格式,诸如文本格式或超文本标记语言(“HTML”)格式。相应地,存储在消息贮仓184中的消息条目可包括根据消息模式152定义的数据字段。存储在消息贮仓184中的消息条目还可包括根据一个或多个消息扩展模式定义的数据字段。消息模式152可定义指向或链接到根据模式分级结构150中其它模式定义的数据字段的数据字段。
例如,消息模式152可定义指向或链接到联系人贮仓182中的联系人相关信息(具有根据联系人模式153定义的数据字段)的一个或多个数据字段。相应地,根据消息模式152定义的消息条目可指向或链接到联系人贮仓182中的联系人相关信息。指向或链接到联系人相关信息可指示对应于联系人相关信息的实体与消息条目相关联。类似地,消息模式152可定义指向或链接到文件夹贮仓183中的文件夹相关信息(具有根据文件夹模式154定义的数据字段)的一个或多个数据字段。相应地,根据消息模式152定义的消息条目可指向或链接到文件夹贮仓183中的文件夹相关信息。指向或链接到文件夹相关信息可指示该消息条目被存储于对应于文件夹相关数据的文件夹中。
类似地,消息模式152可定义指向或链接到文档相关信息的一个或多个数据字段。相应地,根据模式152定义的消息条目可包括指向或链接到文档贮仓186中文档相关数据的一个或多个附件(具有根据附件模式157定义的数据字段)。指向或链接到文档相关数据可指示对应于文档相关数据的文档是该消息条目的附件。例如,消息条目可包括附件,诸如字处理文档、日程安排、图片等。当附件被模式化时,接收计算机系统可更智能地处理附件。例如,消息条目可查询经模式化附件的字段,并根据存储在字段中的值来处理该经模式化附件。
此外,根据消息模式152定义的消息条目可指向或链接到根据帐户模式158定义的帐户相关数据。消息条目的内容(例如消息主体或消息附件)可包括根据内容模式156定义的数据字段。
根据模式152定义的消息条目也可包括根据一个或多个消息扩展模式定义的数据字段。某些消息扩展模式可以是促进与特定消息协议的兼容性的协议扩展。例如,消息协议扩展模式161可包含定义特定消息协议的专用数据字段的一个或多个消息协议扩展模式。例如,协议扩展模式162可定义第一消息协议(例如网络新闻传递协议(“NTTP”))专用的一个或多个数据字段的数据格式,而协议扩展模式163可定义第二消息协议(例如邮局协议3(“POP3”))专用的一个或多个数据字段的数据格式。可将协议扩展模式安排在分级结构中。例如,协议扩展模式164可定义第一消息协议的特定实现(具有根据协议扩展模式162定义的数据字段)所专用的附加数据字段的数据格式。
其它消息扩展可以是促进与特定消息应用程序兼容性的应用程序扩展。例如,消息应用程序扩展模式166可包含定义消息应用程序专用的数据字段的一个或多个消息应用程序扩展模式。例如,应用程序扩展模式167可定义第一消息应用程序(例如电子邮件应用程序)专用的一个或多个数据字段的数据格式,而应用程序扩展协议模式168可定义第二消息应用程序(例如传真应用程序)专用的一个或多个数据字段的数据格式。可将应用程序扩展模式安排在分级结构中。例如,应用程序扩展模式169可定义第二消息应用程序的特定版本(具有根据应用程序扩展模式168定义的数据字段)所专用的附加数据字段的数据格式。
因而,具有根据消息模式152定义的数据字段的消息条目也可具有根据消息协议扩展模式161和消息应用程序扩展模式166中任一扩展模式定义的附加数据字段。对应于消息扩展的数据字段可按需“突加”于消息条目或从消息条目移除,以便于与现有消息协议和消息应用程序的兼容。因此,包含在消息条目中的数据字段的配置可随时间而改变。
诸如消息应用程序111或消息应用程序103的应用程序可请求,在访问消息条目之前,特定消息扩展模式或应用程序扩展模式的字段可突加于该消息条目或从该消息条目中移除。因而,消息条目可为与特定消息协议或消息应用程序的兼容性而进行变换。例如,消息应用程序103可请求将NNTP协议扩展模式加于消息条目116上。相应地,消息应用程序103可检索消息条目116并变换消息条目116,以包括促进与NNTP协议兼容的数据字段(例如,根据协议扩展模式162定义)。然后,可将经变换的消息条目(例如,消息条目107)传递给计算机系统102。
应用程序111可自动地从一个或多个当前赋予的数据字段中检索值,以填充对应于消息扩展模式的新添加数据字段的一个或多个值。检索值可包括指向或链接到根据模式分级结构150中其它模式定义的信息。例如,消息应用程序111可从当前赋予的传真扩展电话号码字段中检索电话号码,从联系人贮仓182中标识对应于该电话号码的联系人,从联系人贮仓182中检索联系人的电子邮件地址,并将该电子邮件地址填充到新赋予的电子邮件消息“来自:”字段。或者,可提示用户填充对应于消息扩展的新添加数据字段的值。
图2A-2D示出了根据本发明原理更详细的模式分级结构200的示例。如图2A所示,模式分级结构200包括基本条目模式210。基本条目模式210包括相互关联的字段211,它定义用于表示基本条目数据的数据格式。更具体地,相互关联的字段211可定义数据格式如下表1。
字段名称 |
字段数据类型 |
字段描述 |
ItemID |
GUID |
定义用于表示数据库条目的一全局唯一标识符。 |
Created |
日期时间 |
定义用于指示创建具有根据ItemID字段定义的全局唯一标识符的数据库条目时的日期和时间的格式 |
DisplayName |
字符串 |
定义用于指示具有根据ItemID字段定义的全局唯一标识符的数据库条目的描述性名称 |
表格1
如图2A所示,模式分级结构200包括消息模式212。消息模式212导出于基本条目模式210,并还包括定义用于表示消息条目的数据格式的相互关联字段213。消息模式212的字段可应用于具有全局唯一标识符(在基本条目模式210中定义)的基本条目,以使该基本条目展现消息条目的属性。更具体地,相互关联字段213可定义数据格式如下表2。
字段名称 |
字段数据类型 |
字段描述 |
ContentLocation |
字符串 |
定义用于表示来自消息内容-位置标题的引用内容的格式。该字段可与基本内容-位置一起使用。某些附件将具有与该内容-位置相关的内容-位置。 |
DeferredSend |
日期时间 |
定义用于表示当要发送消息时的日期和时间的格式。 |
DeleteAfterSubmit |
布尔值 |
定义用于指示在提交消息用于传递之后是否应删除该消息的格式。 |
DownloadState |
字符串 |
定义用于表示从服务器下载消息的不同阶段的格式。部分等等。 |
ExpiryDate |
日期时间 |
定义用于表示当消息的内容过期时的日期和时间的格式。一般而言,不隐含自动动作。 |
Importance |
16位整数 |
定义用于表示消息发送者对消息重要性判断的格式。对应于SMTP中“重要性:”字段。可能的值为1(“低”)、2(“正常”)、以及3(“高”)。新消息的缺省值为2(“正常”)。 |
IsEncrypted |
布尔值 |
定义用于指示消息是否加密的格式。 |
IsRead |
布尔值 |
定义用于指示消息是否已标注为由用户读取的格式。 |
IsSigned |
布尔值 |
定义用于指示消息是否已被签名的格式 |
LastActionTaken |
字符串 |
定义用于表示对消息采取的最后动作的格式。可能的值为:Replied(已回复)以及Forwarded(已转寄)。 |
LastActionTime |
日期时间 |
定义用于表示在消息上采取最后动作时的日期和时间的格式。 |
LastActionType |
字符串 |
定义用于表示在该消息上采取的最后动作类型的格式。应与LastActionTaken一起说明。示例为:要标记的通过传真或电子邮件回复的传真或电子邮件。 |
NormalizedSubject |
字符串 |
定义用于表示消息的标准化主题的格式。NormalizedSubject是主题随前缀之后的部分。如果没有前缀,则NormalizedSubject与主题相同。 |
Preview |
字符串 |
定义用于表示消息预览的格式。预览属性可包含主要消息主体的前几个字符,或用于预览该消息的其某些表示。这是缓存最优化的字段。它从主体进行计算,并可置于此用于预览情形中的快速检索。它是仅有文本字段,且并非是命令性的。 |
PrimaryType |
字符串 |
定义用于表示与消息相关联的消息类型(例如Email、FaxMessage、InstantMessage、VoiceMessage、MeetingRequest等)。消息类型将隐含该消息的行为。应用程序可基于消息类型定制图标并读取定制标题。 |
Priority |
16位整数 |
定义用于表示消息的消息优先级的格式。用于传递的消息优先级由应用程序设置。值为:AboveNormal(正常以上)=3、Normal(正常)=2、BelowNormal(正常以下)=1。较高的值指示传输它要比较低级别的消息更快。 |
ReadReceiptRequested |
布尔值 |
定义用于指示对该消息是否请求读取接收的格式。 |
SendStatus |
字符串 |
定义用于表示消息发送状态的格式。“ToSend”(“要发 |
|
|
送”)对要提取的传输这样编写UI标记。“Sending”(“发送中”):传输从“要发送”转换成“发送中”,从而其它传输不会也尝试发送该消息。“Sent”(已发送)传输在完成发送后从“发送中”转换到“已发送”。 |
Sensitivity |
字符串 |
定义用于表示消息发送者对消息敏感性判断的格式。对应于SMTP中“敏感性:”字段。可能的值为:无(无特别敏感性)、个人、私密、或公司机密。新消息的缺省值为“无”。 |
Size |
64位整数 |
定义用于以字节表示消息的经计算大小的格式。这包括带有主体、标题以及附件的整个消息。当大小未知时,值可丢失。 |
Subject |
字符串 |
定义用于表示消息主题的格式。例如,描述消息题目的一行。该字段从NormalizedSubject和SubjectPrefix(主题前缀)计算而来。主题可以下列方式从主题和SubjectPrefix计算:(1)如果SubjectPrefix呈现,则用预置的前缀将主题设置为NormalizedSubject的内容。(2)如果SubjectPrefix未呈现,则将NormalizedSubject的内容复制给主题。 |
SubjectPrefix |
字符串 |
定义用于表示消息的SubjectPrefix的格式。由一个或多个字母字符,以及随后的冒号以及空格(为前缀的一部分)组成。主题前缀可缺失。如果SubjectPrefix已明确设置,它可以是任何长度的字母数组字符,并可匹配主题开始的子字符串。如果未明确设置SubjectPrefix并必须进行计算,则其内容可以是更受限制的。计算该前缀的一可能规则是该主题以一个、两个或三个文字(仅为字母)开始,随后是冒号及空格。如果这种子字符串在主题的开头发现,则它变成SubjectPrefix(并仍然保持在主题字段的开始部分)。否则SubjectPrefix保持为未设置。 |
TimeDownloaded |
日期时间 |
定义用于表示从服务器下载消息的日期和时间的格式。 |
TimeReceived |
日期时间 |
定义用于表示传递消息的日期和时间的格式。TimeReceived属性描述服务器收到该消息的时间,而不是从服务器下载消息并将其置于本地存储器的时间。在草稿中该值可略去,而在发送消息的副本中保留。 |
TimeSent |
日期时间 |
定义消息发送者提交该消息的日期和时间的格式。该值可在草稿中略去-而在提交该消息时设置。 |
AttachmentMessage |
附件 |
定义用于表示与对应于消息的附件数据的链接的格式。可根据附件模式定义附件数据。 |
MessageContents |
ContentsData内容数据 |
定义用于表示对应于消息的消息内容一部分的格式。可根据内容模式定义消息内容的一部分。 |
MessageOriginal |
OriginalDelivery |
定义用于表示与对应于消息的原始传递帐户数据的链 |
DeliveryAccount |
AccountData(原始传递帐户数据) |
接的格式。该原始传递帐户数据可根据帐户模式进行定义。 |
MessageParticipants |
ParticipantsData(参与者数据) |
定义用于表示与对应于消息的联系人数据的链接的格式。联系人数据可根据联系人模式进行定义。联系人数据可表示参与消息交换的一组用户。这包括,发送者、接收者、抄送人等等。参与者是与表示消息发送者/接收者的联系人条目的链接。当该类型字段包含了有关参与者的所有必须数据时,可虚悬。 |
MessageSentMessageFolder |
SentMessageFolderData(发送消息文件夹数据) |
定义用于表示与对应于消息的文件夹条目的链接的格式。该文件夹条目可根据文件夹模式进行定义。该字段指定消息在提交传递后可移至的文件夹的链接。 |
表格2
如图2A所示,模式分级结构200包括联系人模式214。联系人模式214包括定义用于表示联系人条目的数据格式的相互关联字段215。根据消息模式212定义的消息条目可包括与根据联系人模式214定义的联系人条目的链接。参与者是与表示消息发送者、接收者等的联系人条目的链接。参与者链接在该类型字段包含了有关参与者的所有必须数据时可虚悬。更具体地,相互关联字段215可定义数据格式,如下表3所述。
字段名称 |
字段数据类型 |
字段描述 |
EAddress |
Eaddress |
定义表示一个或多个对应于消息参与者的电子地址的格式。该字段可表示消息参与者的电子地址(例如根据消息模式定义的消息的参与者)。它用于用户名称和地址信息。对于私有DL情形它可略去。对于继承DN情形它可以是多值的。一联系人可包括多个Eaddress字段。 |
GroupID |
GUID |
定义用于表示参与者组标识符的格式。该字段可支持RFC 2822接收者组语法。这就是将接收者分组到特定显示名称的方法,包括处理带有同一名称的两个组。 |
Order |
32位整数 |
定义用于表示对应于参与者的顺序的格式。用户界面在向用户显示参与者顺序时可考虑该值。 |
Type |
字符串 |
定义用于表示对应于参与者(个人、机构、以及公司)的实体类型的格式。这是一种自由形式字符串,人们可在此添加其它值。 |
Usage |
字符串 |
定义用于表示信息的参与者使用的格式。可能的值为:From、To、Cc、Bcc、Sender、ReplyTo、ReceivedRepresenting、TransportSender。它也可包含其它值。应用程序不需理解该字段所有类值。某些仅可应用 |
|
|
于电子邮件,某些仅可应用于IM消息等。 |
DeliveryReceiptRequest |
布尔值 |
定义用于指示是否已对参与者要传递收条的格式。 |
表格3
如图2A所示,模式分级结构200包括文件夹模式220。文件夹模式220包括用于定义用于表示文件夹条目的数据格式的相互关联字段221。根据消息模式212定义的消息条目可包括与根据文件夹模式214定义的文件夹的链接。更具体地,相互关联字段221可定义数据格式,如下表4所述。
字段名称 |
字段数据类型 |
字段描述 |
CanCreateChildren |
布尔值 |
定义用于指示文件夹是否可包括子文件夹的格式。服务器可能不想或不允许文件夹具有子文件夹。IMAP通过返回经命名属性中的“\Noinferiors”作为IMAP LIST的响应来指示。 |
CustomType |
字符串 |
定义用于表示对应于该文件夹的定制类型的格式。这包含唯一标识文件夹类型的GUID或其它定制类型。这可用于频繁出现以添加到类型类别的“SpecialOffers”、“Errors”、“Preprocessing”、或其它定制文件夹。 |
Description |
字符串 |
定义用于表示文件夹描述的格式。 |
DisplayName(显示名称) |
字符串 |
定义用于表示文件夹形式名称的格式。文件夹的名称在其对等实体中可以是唯一的,但DisplayName并不具有要求其唯一的数据库代码。 |
Size |
64位整数 |
定义用于以字节数显示文件夹的经计算大小的格式。这可包括文件夹中消息的整个主体、标题、以及附件。如果大小未知,可略去该值。 |
SynchronizationType |
字符串 |
定义用于表示文件夹如何同步的格式。最常用于IMAP、NNTP、以及DAV帐户。值为:All:(全部:)完全同步该文件夹;Herders:(标题:)同步标题;New:(新:)同步新条目。 |
TotalCount |
32位整数 |
定义用于显示文件夹中消息总量的格式。 |
Type |
字符串 |
定义用于显示特定名称的格式,因为某些文件夹可以特定方式对待。例如,一个RemoteRoot不应具有一个以上InboxPrimary。然而,它可具有一个以上Inbox(收件箱)。值为:[这些可映射到是电子邮件帐户的根的文件夹。]1)RemoteRoot:该文件夹及其子文件夹一对一地映射到从服务器反映文件夹和消息的帐户中。(示例:IMAP)2)LocalRoot:未一对一映射到从服务器反映文件夹和消息的帐户中。[这些可映射到是电子邮件帐户的根的文件夹。]3)Inbox:该文件夹被指定为是“Inbox”。4)Outbox |
|
|
(发件箱):该文件夹被指定为是“Outbox”。5)Sent(已发送):该文件夹被指定为“Sent”。6)Deleted(已删除):该文件夹被指定为是“已删除”。7)Drafts(草稿):该文件夹被指定为“Drafts”。8)Junk(垃圾):该文件夹被指定为“Junk”。 |
UnreadCount |
32位整数 |
定义用于显示文件夹中未读取消息数量的格式。该帐户仅用作文件夹中的消息条目。 |
Account |
AccountData(帐户数据) |
定义用于表示与帐户数据的链接的格式。帐户数据可根据帐户模式定义。 |
表格4
如图2A所示,模式分级结构200包括内容模式216。内容模式216包括定义用于表示与消息条目相关联的一部分内容的数据格式的相互关联字段217。根据消息模式212定义的消息条目可包括与根据内容模式216定义的一部分内容(例如主体或附件)的链接。这可以是与文档、时间、或内容的某些其它部分的链接。消息条目可具有多个主体和/或附件。更具体地,相互关联字段217可定义数据格式,如下表5所述。
字段名称 |
字段数据类型 |
字段描述 |
ContentMetadata |
ContentProperties(内容属性) |
定义用于表示一部分内容(例如消息主体或附件)的内容属性的格式。ContentProperty类型包含描述消息内容的字段。它关于在消息和条目之间表示附件扩展内容的关系。 |
IsAttachment |
布尔值 |
定义用于指示所引用的那部分内容是消息的主体还是附件。该字段表示应用程序认为该内容是什么,而相反ContentDisposition(内容部署)字段则是来自MIME的建议。 |
Order |
32位整数 |
定义用于表示那部分内容的顺序的格式。该值提供主体和附件的顺序。在向用户显示附件的顺序时,用户界面应考虑该值。第一主体可以是优选主体。 |
表格5
如图2A所示,模式分级结构200包括附件模式218。附件模式218包括定义用于表示与消息条目相关联的附件的数据格式的相互关联字段219。根据附件模式218定义的附件可包括与根据消息模式212定义的消息条目的链接。更具体地,相互关联字段219可定义数据格式,如下表6所述。
字段名称 |
字段数据类型 |
字段描述 |
ContentMetadata |
ContentProperties |
定义用于表示附件内容属性的格式。ContentProperty类型包含描述附件的字段。它关于在消息和条目之间表示附件扩展内容的关系。 |
AttachmentState |
String |
定义用于指示附件的类型和行为的格式。各值可包括:1)EnclosedAttachment(所附附件):该值指示在Mime之外解码而存储的附件。该附件将就象它被封装在Mime流中一样动作。因为数据要以解码形式存储或者属性需要被模式化,该数据库条目被创建。需要这个的两种最常见情形是:A.某些协议将以解码形式下载MIME内容之外的附件。B.该附件数据或元属性需要是可访问的,但该附件不象发送者附上该文档/文件以使接收者直接使用一样动作。示例包括:签名点、仅内联附件、数字签名证书或数据。2)PromotedAttachment(改进式附件):该附件经提升象消息的对等实体一样动作。它在外壳中与消息一起显现。3)SavedAsAttachment(存为附件):该附件已被“存为”,所以它将象消息的副本一样动作。 |
IsEncrypted |
布尔值 |
定义用于指示是否对附件加密的格式。 |
IsPinned |
布尔值 |
定义用于指示是否对附件加标注的格式,该标注意思是在删除消息后它将继续存在。如果附件未加标注,则可发生:1.当消息被删除时,删除附件。2.当附件条目被删除时,从该消息删除与附件相关联的任何消息或元数据(以节约空间或为了私密性)。 |
IsRead |
布尔值 |
定义用于指示与附件相链接的消息是否已被标记为由用户读取的格式。 |
IsSigned |
布尔值 |
定义用于指示与附件相链接的消息是否已签名的格式。 |
IsTrusted |
布尔值 |
定义用于指示与附件相链接的消息是否已满足了要与其它文件一起显现的用户的安全优选。如果满足了安全优选,附件已满足了用户的准则而无需显示警告用户界面。该准则应当是:附件内容、发送者已确认、或用户界面已显示。另一方面,如果未满足安全优选,在打开附件之前应向用户显示安全优选警告用户界面。这将告知用户内容可能来自不受信任的源并可包含有害内容。 |
LastActionTaken |
字符串 |
定义用于表示在与附件相链接的消息上所采取的最后动作。可能的值为:已回答以及已转发。 |
LastActionTime |
日期时间 |
定义用于表示在与附件相链接的消息上所采取的最后动作的日期和时间的格式。 |
LastActionType |
字符串 |
定义用于表示在与附件相链接的消息上所采取的最后动作类型的格式。应与LastActionTaken一起说明。示例为:标记通过传真或电子邮件回复的传真或电子邮 |
|
|
件。 |
Priority |
字符串 |
定义用于表示与附件相链接的消息的优先级的格式。用于传递的消息优先级由应用程序设置。可能值为:AboveNormal(正常以上)、Normal(正常)、BelowNormal(正常以下)。较高的值指示传输它要比较低级别的消息更快。 |
SendStatus |
字符串 |
定义用于表示附件发送状态的格式。例如,UI可将附件标记为“ToSend”(“要发送”)用于传输提取。UI可将附件标记为“Sending”(“发送中”),以指示传输从“要发送”转换成“发送中”,从而其它传输不会也尝试发送该消息。UI可将附件标记为“Sent”(已发送):传输在完成发送后从“发送中”转换到“已发送”。 |
Size |
64位整数 |
定义用于表示与附件相链接的消息(包括附件)的尺寸。 |
Subject |
字符串 |
定义用于表示与附件相链接的消息主题的格式。例如,描述附件的一行。 |
TimeReceived |
日期时间 |
定义用于表示传递附件的日期和时间的格式。TimeReceived属性描述服务器收到与该附件相链接的消息的时间,而不是从服务器下载附件并将其置于本地数据库存储器的时间。在草稿消息中该值可略去,而在发送消息的副本中保留。 |
TimeSent |
日期时间 |
定义消息发送者提交与该附件相链接的消息的日期和时间的格式。该值可在草稿中略去-而在提交该消息时设置。 |
Type |
字符串 |
定义用于表示与该附件相链接的消息类型的格式。该类型将隐含该经链接消息的动作。应用程序可基于类型定制图标并读取定制标题。该值可来自X-消息类型标题。 |
AttachmentMessage |
消息数据 |
定义用于表示与关联于该附件的消息条目的链接的格式。可根据消息模式定义消息条目。 |
AttachmentParticipants |
参与者数据 |
定义用于表示参与交换与该附件相链接的消息的一组用户。这包括,发送者、接收者、抄送人等等。 |
AttachmentSavedFrom |
SavedFromData(存自数据) |
定义用于表示与附件所存储配置的链接的格式。用户可使用用户界面存为附件副本。这样做可制作附件副本。如果包括该值,则附件是原始附件的“存储为”副本。该链接的目的地是原始附件。 |
AttachmentSource |
AttachmentSourceData |
定义用于表示附件源的格式。如果包括了附件且该链接具有一值,则该链接指向附件源自的数据库条目。 |
表格6
如图2A所示,模式分级结构200包括帐户模式222。帐户模式222包括定义用于表示帐户条目的数据格式的相互关联字段223。根据消息模式212定义的消息条目(或根据文件夹模式220定义的文件夹条目)可包括与根据帐户模式222定义的帐户条目的链接。帐户条目可包括消息和设置。更具体地,相互关联字段223可定义数据格式,如下表7所述。
字段名称 |
字段数据类型 |
字段描述 |
Address |
Eaddress |
定义表示一个或多个映射到该帐户的电子地址的格式。该集合应当被排序并且该顺序是重要的。第一个电子地址是主要的(用于来自字段填充)。 |
Description |
字符串 |
定义用于表示有关该帐户的描述的格式。 |
IncomingServerAccount |
ServerAccount(服务器帐户) |
定义用于表示能接收该帐户消息的服务器的格式。(双向服务器应在进入和外出帐户中复制其信息。) |
Organization |
字符串 |
定义用于表示与该帐户相关联的机构的格式。 |
OutgoingServerAccount |
服务器帐户 |
定义用于表示能发送该帐户消息的服务器的格式。双向服务器应在进入和外出帐户中复制其信息。 |
Synchronize |
布尔值 |
定义指示帐户是否要与服务器同步的格式。除非用户特别要求,用户可能希望跳过使帐户同步。 |
FolderAccount |
文件夹 |
定义用于表示与指向该帐户的文件夹条目的链接的格式。文件夹条目可根据文件夹模式来定义。 |
表格7
如图2B所示,模式分级结构200包括内容属性模式224。内容属性模式224包括定义用于表示内容属性的数据格式的相互关联字段225。内容属性包含描述信息内容的字段。内容属性的值用于信息条目和一部分内容(例如根据附件模式216定义的)之间的关系或附件(例如根据附件模式218定义的)的扩展。更具体地,相互关联字段225可定义数据格式,如下表8所述。
字段名称 |
字段数据类型 |
字段描述 |
ContentBase |
字符串 |
定义用于表示内容的内容基础的格式。ContentID、ContentBase、以及ContentLocation允许MIME章节之间的相互引用。这可被用于以使HTML主体中的URL能够引用所附内容。 |
ContentDescription |
字符串 |
定义用于指示可伴随该内容的描述的格式。对于电子邮件消息,该值可来自内容描述:标题。某些继承客户机将内容描述用作推荐文件名。 |
ContentID |
字符串 |
定义用于表示内容的内容实体ID的格式。内容-ID、内 |
|
|
容-基础、以及内容-位置允许MIME章节之间的相互引用。这可用以使HTML主体中的URL能够引用所附内容。 |
ContentType |
字符串 |
定义用于表示内容的内容类型的格式。对于电子邮件消息,这可匹配附件源自的MIME章节的内容-类型标题字段。对于其它类型的电子消息,该内容类型可最佳地匹配该内容。例如,内容-类型可以是‘audio/mp3’而消息内容可指向音乐模式中的条目、或所包含的.mp3文件、或存储音乐数据的另一条目。因而,内容-类型给出了数据的标准指示。这是一种自由形式的字符串。应用程序可在此置入自己的类型,而不仅仅是“text/html”以及其它mime内容类型。 |
ContentTypeParameters |
字符串 |
定义用于表示内容-类型标题中参数的格式。参数可以是‘属性=值’的格式,并可用‘;’隔开。可包含文件名。 |
IsMacBinary |
布尔值 |
定义用于指示附件是否是Mac二进制的格式。这可便于对Mac二进制的特别处理。 |
MimeURL |
字符串 |
定义用于表示MIME路径的格式。Mime路径:URL的形式:MimePath://[Level1]:[Multipart-Type]/[Level2]:[Multipart-Type]/.../[Leveln]:[Multipart-Type] |
SuggestedFileName |
字符串 |
定义用于表示经推荐伴随内容的文件名的格式。可略去路径,并仅包括文件名。对于电子邮件消息,该值可来自内容-类型:‘名称’参数、或内容-配置-文件名、或原始电子邮件消息中的另一位置。例如:‘Bill in Florida2004.jpg’ |
表格8
如图2B所示,模式分级结构200包括服务器帐户模式228。服务器帐户模式228包括定义用于表示服务器帐户的数据格式的相互关联字段229。根据服务器帐户模式228定义的服务器帐户数据为了与特定服务器兼容可扩展帐户(例如,根据帐户模式222定义的)。服务器帐户模式可用以为客户机帐户描述服务器帐户。更具体地,相互关联字段229可定义数据格式,如下表9所述。
字段名称 |
字段数据类型 |
字段描述 |
AuthenticationMethod |
字符串 |
定义用于表示服务器的验证方法的格式。该集合是被排序的,且第一条目是优选条目。 |
NetworkProtocol |
字符串 |
定义用于表示用以向服务器发送和从服务器接收的网络协议的格式。值为:POP3、IMAP、NNTP、DAV.Hotmail、DAV.Exchange等等。 |
PasswordIndexUUID |
字符串 |
定义用于表示对服务器密码存储器的索引的格式。为了提高安全性,密码可存储于数据库之外的密码存储器中。 |
|
|
该UUID允许对密码存储器的索引。 |
PortNumber |
32位整数 |
定义用于表示在联系服务器时要使用的端口号的格式。 |
Server |
字符串 |
定义用于表示指示服务器的主机名或URL的格式。 |
SSLEnabled |
布尔值 |
定义用于指示与服务器相连时是否要使用SSL的格式。 |
UserName |
字符串 |
定义用于表示登录到服务器时要使用的用户名的格式。 |
表格9
如图2C所示,模式分级结构200包括多个消息扩展模式,其中包括消息协议扩展模式230和消息应用程序扩展模式250。消息协议扩展模式230包括可用以扩展消息条目以与多个相应消息协议兼容的多个协议扩展模式。例如,消息协议扩展模式230包括可分别促进与即时消息、电子邮件、以及传真协议兼容的即时消息协议模式231、电子邮件协议模式233、以及传真协议模式235。在消息协议扩展模式230中明确所示的模式之前、之间以及之后的省略号指示,消息协议扩展模式230可包括附加模式(例如用于扩展消息条目,以与语音消息协议、blog条目协议等兼容)。
竖向省略号232和236指示即时消息协议模式231和传真协议模式235可分别包含一个或多个相互关联的数据字段。该一个或多个相互关联的数据字段可用以扩展消息条目以与相应的消息协议兼容。例如,电子邮件协议模式233包括可用以扩展消息条目(例如根据消息模式212定义的)的相互关联字段字段234以与电子邮件协议兼容。更具体地,相互关联字段234可定义数据格式,如下表10所述。
字段名称 |
字段数据类型 |
字段描述 |
ConversionIndex(对话索引) |
二进制 |
定义用于表示该消息在对话线程中相对位置的格式。ConversionIndex可使用相串接的时间标记值来实现。通过根据ConversationTopic(对话主题)对消息列表分组并根据ConversationIndex在每个组中排序来创建对话视图。 |
ConversationTopic |
字符串 |
定义用于表示对应于消息和回复系列的对话线程的格式。ConversationTopic值为线程中的第一消息设置,例如设置为对NormalizedSubject。该线程中随后的消息可无需更改地使用同一ConversationTopic。 |
FlagColor |
字符串 |
定义用于表示标记色彩的格式。 |
FlagReminderDate |
字符串 |
定义用于表示所请求动作到期的日期和时间的格式。 |
FlagStatus |
字符串 |
定义用于表示消息是否已由用户标记的格式。可能的值 |
|
|
包括无、已标记、以及完成。该分类可基于应用程序需求扩展。 |
FlagTitle |
字符串 |
定义用于表示消息上标记的文本的格式。 |
InternetMessageID |
字符串 |
定义用于表示消息的因特网消息ID的格式。可对应于SMTP中的RFC 2822“消息-ID”字段。该值在新创建的和草稿消息中可略去。 |
MimeStream |
二进制 |
定义用于表示消息的mime编码内容的格式。该MimeContent(Mime内容)表示消息内容的未解释形式。该消息流可解析并存储为字段(消息类型、主体、附件等)。某些种类的不常使用的定制信息将仅在Mime流中存在,诸如:‘X-’标题、某些mime章节标题、文本前或后边界、冗余附件文件名(内容-类型:‘名称’、内容-类型-配置-文件名等)等等。原始的mime流还可用以检查数字签名,并尝试用不同的字符集来解码。该字段可以是FileStream(文件流)类型。 |
ShowPaperClip |
布尔值 |
定义用于指示该信息是否包含保证对UI中的消息显示一个纸夹的重要附件。它可通过复杂的应用程序专用算法来计算。例如,它说明的是附件,而不是内联附件和签名块。 |
表格10
如图2C所示,电子邮件POP3模式237源自电子邮件协议模式233,并包括定义POP3特定数据的附加的相互关联字段238。电子邮件POP3模式237可用来扩展电子邮件消息(例如,包括根据电子邮件协议模式233定义的字段)以提升与POP3协议的兼容性。相互关联字段238可定义数据格式,如下表11所示。
字段名称 |
字段数据类型 |
字段描述 |
Deleted |
布尔值 |
定义用于指示消息是否已在服务器上删除的格式。 |
UIDL |
字符串 |
定义用于表示如何使消息同步的格式。当使能‘将消息留在服务器上’的特征时该字段可在同步期间使用。该UIDL被用以在同步期间唯一地标识POP3消息。 |
表格11
如图2C所示,电子邮件NNTP模式239源自电子邮件协议模式233,并包括定义NNTP特定数据的附加的相互关联字段240。电子邮件NNTP模式239可用来扩展电子邮件消息(例如,包括根据电子邮件协议模式233定义的字段)以促进与NNTP协议的兼容性。相互关联字段240可定义数据格式,如下表12所示。
字段名称 |
字段数据类型 |
字段描述 |
ArticleID |
32位整数 |
定义用于表示消息的条目ID的格式。ArticleID由NNTP协议使用来协调服务器和客户机之间的消息。 |
IsArticleExpired |
布尔值 |
定义用于指示是否已从服务器删除该消息的格式。 |
IsKeepBody |
布尔值 |
定义用于指示消息主体是否要在清除时存储的格式。 |
Lines |
64位整数 |
定义用于表示消息中行数的格式。 |
表格12
如图2C所示,电子邮件社区新闻模式241源自电子邮件NTTP模式239,并包括定义社区新闻特定数据的附加的相互关联字段242。电子邮件社区新闻模式241可用来扩展NTTP消息(例如,包括根据电子邮件NTTP模式239定义的字段)以促进与社区新闻消息的兼容性。相互关联字段242可定义数据格式,如下表13所示。
字段名称 |
字段数据类型 |
字段描述 |
CommunityStatus |
字符串 |
定义用于表示投递者是否已发现完全适于其的邮件的格式。可能的值为:1)Not Included(未包括):无数据可用;2)Poster Approved(投递者得到验证):投递者已读取了充分解决该问题的邮件;3)OtherApproved(其它得到验证的):另一类投递者已表示一答复充分解决了该问题。 |
FeedBack |
字符串 |
定义用于表示用户已提交的反馈类型的格式。可能的值为:1)Not Included(未包括):无数据被提交;2)Answered(已答复):这指示该答复充分解决了询问的问题;3)Helpful(有帮助的):该邮件是有帮助的;4)NotHelpful(无帮助的):该邮件无帮助。 |
PosterID |
字符串 |
定义用于表示唯一标识投递者的标识符的格式。如果邮件未得到验证,可略去该字段。 |
PosterType |
字符串 |
定义用于表示新闻组投递者类型的格式。可能的值为:1)未包括:未指定任何类型;2)MVP:该投递者为MVP。 |
PostType |
字符串 |
定义用于表示新闻组邮件类型的格式。可能的值为:1)未包括:未指定任何类型,2)问题:该邮件是一问题,3)建议:该邮件是一建议,4)议论:该邮件是关于先前邮件的议论,5)答复:该邮件是对前问题的答复。 |
ThreadID |
字符串 |
定义用于表示唯一标识包括该消息的线程的标识符的格式。 |
表格13
消息应用程序扩展模式250包括多个应用程序扩展模式,它们可被用来扩展消息条目以便与多个相应消息应用程序兼容。例如,消息应用程序协议扩展模式250包括可分别提升与blog应用程序、第一电子邮件应用程序、以及第二电子邮件应用程序兼容的Blog应用程序模式251、电子邮件应用程序模式253、以及第二电子邮件应用程序模式255。在消息应用程序扩展模式250中明确所示的模式之前、之间以及之后的省略号指示,消息应用程序扩展模式250可包括附加模式(例如用于扩展消息条目,以与语音消息应用程序、新闻组应用程序等兼容)。
竖向省略号252和256指示即时消息应用程序模式251和第二电子邮件应用程序模式255可分别包含一个或多个相互关联的数据字段。该一个或多个相互关联的数据字段可用以扩展消息条目以与相应的消息应用程序兼容。例如,电子邮件应用程序模式253包括可用以扩展消息条目的相互关联字段254以与特定电子邮件应用程序兼容。更具体地,相互关联字段254可定义数据格式,如下表14所述。
字段名称 |
字段数据类型 |
字段描述 |
ForwardTo |
字符串 |
定义用于表示消息是否要自动转寄的格式。 |
HasPartialReceiveTime |
布尔值 |
定义指示时间区是否包括在接收时间内的格式。 |
HighlightColor |
字符串 |
定义用于表示用以高亮消息的色彩格式。当消息匹配一规则或过滤时,使它们能以色彩高亮。可能的值为:无、色彩1、色彩2、……、或色彩16。 |
IMAPUID |
32位整数 |
定义用于表示IMAP服务器上消息的唯一标识符的格式。 |
IsIMAPDelayedDelete |
布尔值 |
定义用于指示该消息是否已为IMAP延迟删除作标记的格式。 |
IsMarkedForDownload |
布尔值 |
定义用于指示该消息是否已为下载作标记的格式。 |
IsNewsGroupMessage |
布尔值 |
定义用于指示该消息是否是新闻组消息的格式。 |
IsReceiptProcessed |
布尔值 |
定义用于指示是否已处理了收条的格式。 |
IsReceiptSent |
布尔值 |
定义用于指示是否发送了收条的格式。 |
IsSavedOffline |
布尔值 |
定义用于指示消息是否在离线模式时存储的格式。 |
RecHeader |
字符串 |
定义用于表示在消息中得到的‘X-MSOESRec’标题的格式。 |
PartialID |
字符串 |
定义用于表示该消息的部分ID的格式。如果包括在内,该值为消息/部分消息的内容-类型中的‘id’参数。 |
PartialNumber |
32位整数 |
定义用于表示该消息的部分数量的格式。如果包括在内, |
|
|
该值为消息/部分消息的内容-类型中的‘Number’参数。 |
PartialTotal |
32位整数 |
定义用于表示该消息的部分总和的格式。如果包括在内,该值为消息/部分消息的内容-类型中的‘total’参数。可能的值为:0或未包括在内:该消息不是‘消息/部分’内容-类型消息。-1:该消息是一全部消息,且它通过成功地组合‘消息/部分’内容-类型消息中的所有部分而产生。1或>l:该消息是‘消息/部分’内容-类型消息。 |
Refs |
字符串 |
定义用于表示该消息所引用线程的Id的格式。可在NNTP和IMAP中使用。 |
UserCodePageOverride |
32位整数 |
定义用于表示要将该消息转换成unicode的代码页的格式。该代码页来自用户尝试用不同于该消息中所指定的代码页来解码该消息的选择。 |
WasDeletedOffline |
布尔值 |
定义用于指示该消息是否在离线模式时删除的格式。 |
WatchStatus |
字符串 |
定义用于表示该消息是想要略去、监视,还是不用于会话线程的格式。可能的值为:无、监视、或略去。 |
XRef |
字符串 |
定义用于表示XRef标题的值的格式。 |
表格14
如图2D所示,模式分级结构200包括多个文件夹扩展模式,包括文件夹协议扩展模式260和文件夹应用程序扩展模式270。文件夹协议扩展模式260包括可用以扩展文件夹条目以与多个相应文件夹协议兼容的多个文件夹协议扩展模式。例如,文件夹协议扩展模式260包括可分别提升与以与语音消息文件夹协议、电子邮件文件夹协议、以及blog条目文件夹协议兼容的语音消息文件夹协议模式261、电子邮件文件夹协议模式263、以及blog条目文件夹协议模式267。在文件夹协议扩展模式260中明确所示的模式之前、之间以及之后的省略号指示,文件夹协议扩展模式260可包括附加模式(例如用于扩展文件夹条目,以与即时消息文件夹协议、传真文件夹协议等兼容)。
竖向省略号262、264、268指示,语音消息文件夹协议模式261、电子邮件文件夹协议模式263、以及blog条目文件夹协议模式267可分别包含一个或多个相互关联的数据字段。该一个或多个相互关联的数据字段可用以扩展文件夹条目以与相应的文件夹协议兼容。如图2D所示,电子邮件IMAP文件夹模式265进一步源自电子邮件消息文件夹协议模式263并包括可定义IMAP特定数据的附加的相互关联字段266。电子邮件IMAP文件夹模式265可用以扩展电子邮件消息文件夹(例如包括根据电子邮件消息文件夹协议模式263定义的字段)以提升与IMAP文件夹的兼容性。相互关联字段266可定义数据格式,如下表15所述。
字段名称 |
字段数据类型 |
字段描述 |
CanSelect |
布尔值 |
定义用于指示UI是否将使该文件夹能被选择的格式。 |
CharSet |
字符串 |
定义用于表示如何使用UTF-7的经更改版本来传递unicode文件夹名称的格式。如果该文件夹名称从服务器接收且并未遵从以UTF-7编码的RFC 2060章节5.1.3方法,则将把本地用户的字符集记录到该字段中。如果服务器未以UTF-7编码,则使用windows代码页的可能是一继承客户机。如果该值被设置,则从服务器接收的文件夹名称将被转换成BASE-64编码,然后以unicode存储到Mail.IMAPFolder.DisplayName。 |
HasChildren |
布尔值 |
定义用于指示因为该文件夹具有子文件夹而应当在UI中显示+号的格式。 |
HierarchyDelimeter |
字符串 |
定义用于表示IMAP服务器上文件夹路径的格式。该字符将以unicode存储,但在使用US代码页转换成ANSI时,它将不具有高比特集。 |
IsSubscribed |
布尔值 |
定义用于指示是否预订文件夹的格式。这对传输未预订的IMAP、NNTP、或文件夹可完成。 |
MarkedForDeletion |
布尔值 |
定义用于指示文件夹是否为IMAP删除而标记,且将在所有子文件夹被删除时在服务器上删除的格式。 |
UIDValidity |
32位整数 |
定义用于表示IMAP文件夹的UIDVALIDITY值的格式。可从IMAP服务器以‘UIDVALIDITY’响应返回。 |
表格15
文件夹应用程序扩展模式270包括多个应用程序扩展模式,它们可被用来扩展文件夹条目以便与多个相应文件夹应用程序兼容。例如,文件夹应用程序协议扩展模式270包括可分别提升与即时消息文件夹应用程序、第一电子邮件文件夹应用程序、以及第二电子邮件文件夹应用程序兼容的即时消息文件夹应用程序模式271、电子邮件文件夹应用程序模式273、以及第二电子邮件文件夹应用程序模式275。在文件夹应用程序扩展模式270中明确所示的模式之前、之间以及之后的省略号指示,文件夹应用程序扩展模式270可包括附加模式(例如用于扩展文件夹条目,以与blog条目文件夹应用程序、传真文件夹应用程序等兼容)。
竖向省略号272和276指示即时消息应用程序文件夹模式271和第二电子邮件消息应用程序文件夹模式275可分别包含一个或多个相互关联的数据字段。该一个或多个相互关联的数据字段可用以扩展文件夹条目以与特定的电子邮件文件夹应用程序兼容。例如,电子邮件消息应用程序文件夹模式273包括可用以扩展文件夹条目的相互关联字段274以与特定电子邮件应用程序兼容。该特定电子邮件文件夹应用程序可与对应于第二电子邮件消息文件夹应用程序模式275的第二电子邮件文件夹应用程序不同。更具体地,相互关联字段274可定义数据格式,如下表16所述。
字段名称 |
字段数据类型 |
字段描述 |
CanDelete |
布尔值 |
定义用于指示UI是否将使该文件夹能被删除的格式。可指示文件夹为电子邮件应用程序还是为服务器所需要。 |
CanRename |
布尔值 |
定义用于指示文件夹是否可重命名的格式。某些服务器可禁止重命名文件夹。例如,IMAP可禁止重命名特定文件夹,诸如“草稿”以及“已发送条目”。 |
FolderCreatedOffline |
布尔值 |
定义用于指示文件夹是否要离线创建,或在转换回在线时要在服务器上创建的格式。 |
FolderExpanded |
布尔值 |
定义用于指示文件夹是否为已扩展状态的格式。 |
IsFolderHidden |
布尔值 |
定义用于指示是否要从UI中文件夹树上隐藏文件夹的格式。可由用户使用来隐藏文件夹。 |
StatusMsgDleta |
32位整数 |
定义用于表示通过IMAP状态响应添加的消息数量的格式。 |
StatusUnReadDleta |
32位整数 |
定义用于表示通过IMAP状态响应添加的未读取消息数量的格式。 |
URLComponent |
字符串 |
定义用以表示可由传输使用映射到服务器上文件夹的URI/URL的格式。 |
表格16
如图2D所示,电子邮件新闻消息文件夹应用程序模式277源自电子邮件消息文件夹应用程序模式273,并包括定义新闻消息特定数据的附加的相互关联字段278。电子邮件新闻消息文件夹应用程序模式277可用来扩展电子邮件消息文件夹(例如,包括根据电子邮件消息应用程序模式273定义的字段)以提升与新闻消息文件夹应用程序的兼容性。相互关联字段278可定义数据格式,如下表17所示。
字段名称 |
字段数据类型 |
字段描述 |
ClientRange |
ArticleRange(物件范围) |
定义用于表示客户机上物件范围的格式。 |
CommunitiesLastRefresh |
日期时间 |
定义用于指示刷新社区动态属性的最后日期和时间的格式。 |
CommunityRange |
物件范围 |
定义用于表示已与社区标题属性同步的ArticleID范围集合的格式。 |
HighestArticleCheckedForWatch |
32位整数 |
定义用于表示已检查过监视信息的最高标号的物件的格式。 |
IsNewNewsGroup |
布尔值 |
定义用于指示该文件夹是否是新的新闻组的格式。 |
PostAccess |
字符串 |
定义用于表示如何允许新闻组邮件的格式。某些新闻组可限制是否或如何允许邮件。可能的值为:1)未包括在内:未加任何访问限制。2)未公告:邮件不允许在该服务器上公告。3)暂缓的:到该服务器的邮件将被暂缓公告。4)封锁的:到该服务器的邮件遭封锁。 |
ReadRange |
条目范围 |
定义用于表示已读取的ArticleID范围集合的格式。 |
SynchronizeRange |
条目范围 |
定义用于表示已与该文件夹同步的ArticleID范围集合的格式。 |
TotalArticle |
32位整数 |
定义用于表示在新闻组服务器上物件计数的格式。 |
TotalNotDownloaded |
32位整数 |
定义用于表示还未下载的新闻组消息数量的格式。 |
TotalWatched |
32位整数 |
定义用于表示受监视消息数量的格式。 |
UnreadWatched |
32位整数 |
定义用于表示受监视的未读取消息数量的格式。 |
表格17
如图2D所示,物件范围模式281包括定义用于表示物件范围的格式的相互关联字段282。相互关联字段282可定义数据格式,如表18所述。
字段名称 |
字段数据类型 |
字段描述 |
High |
32位整数 |
定义用于表示范围中同步的高ArticleID值的格式。 |
Low |
32位整数 |
定义用于表示范围中同步的低ArticleID值的格式。 |
表格18
包括在诸如模式分级结构150或模式分级结构200的模式分级结构中的各模式,可被用以创建存储在数据库114中的数据库条目。例如,基本条目模式151、消息模式152、以及可能来自消息协议扩展模式161的一个或多个消息协议扩展模式和/或来自消息应用程序扩展模式166的一个或多个消息应用程序模式,可被用以创建电子消息。图3示出了根据本发明原理格式化的示例电子消息300。图8示出了用于根据本发明原理创建电子消息的方法800的示例流程图。该方法800将参照网络架构100、模式分级结构150、以及电子消息300而描述。网络架构100中所示的任何消息(即消息条目107、108、112和116)在格式上都与电子消息300相似。
方法800包括创建表示电子消息的消息条目的动作(动作801)。动作801可包括创建表示电子消息的消息条目的计算机系统。例如,计算机系统102或计算机系统109可创建表示电子消息的消息条目(例如电子消息条目108或112)。消息条目可响应于诸如选择用户界面“新消息”选项的用户输入而创建。用户输入可在本地接收,例如来自诸如键盘或鼠标的本地输入装置,或可从远程位置接收,例如从某些其它网络可连接的计算机系统。
创建消息条目可包括创建一数据结构,它包括根据基本条目模式151和消息模式152定义的一个或多个字段。根据基本条目模式151和消息模式152定义的各字段可表示多个不同类电子消息共同的一般属性。一般属性301是对多个不同类电子消息共同的消息属性字段的示例。诸如全局唯一标识符(“GUID”)的标识符可被赋予ID字段302。被赋值的标识符可将表示电子消息300的消息条目与数据库114中其它条目区分开来。
方法800包括将一主要类型赋予已创建消息条目的动作(动作802)。动作802可包括将主要类型赋予已创建消息条目的计算机系统。主要消息类型可指示电子消息300的一般行为,诸如电子邮件消息、传真消息、新闻组公告等等。将主要类型赋予电子消息300可包括把表示例如电子邮件消息、传真消息、新闻组公告、或blog条目的主要消息类型赋予主要类型字段303。所以,主要类型字段303可表示由ID字段302中标识符所标识的电子消息的主要消息类型。
也可赋予电子消息300的其它属性。参与者字段304可被赋予一个或多个消息参与者关系,它表示与关联于电子消息300的一个或多个参与者(由ID字段302中标识符表示的电子消息)的链接。内容字段305可被赋予一个或多个消息内容关系,它表示与对应于电子消息300的一个或多个消息内容部的链接。已发送消息字段306可被赋予一个或多个文件夹关系,它表示与在提交用于传递之后对要移除电子消息300的一个或多个消息文件夹的链接。下载状态字段307可被赋予对应于电子消息300的下载状态(例如部分等)。
消息状态字段308可被赋予表示消息300状态的一个或多个值。例如,消息状态字段308在已读取消息300时可被赋予IsRead指示,可被赋予指示消息300发送状态的SendStatus指示、指示电子消息300上所采取最后动作的LastActionTaken指示、表示电子消息300上所采取最后动作时间的LastActionTime指示、以及表示电子消息300上所采取最后动作类型的LastActionType字段。一般属性301的字段可对应于表格2中所述的数据格式。
方法800包括用于根据一个或多个消息扩展定制消息条目的功能性面向结果步骤(步骤805)。步骤805可包括导致根据一个或多个消息扩展导致消息条目的任何响应动作。然而,在图8所示示例中,步骤805包括将一个或多个协议扩展赋予已创建消息条目的相应动作(动作803)。
动作803可包括将一个或多个协议扩展赋予已创建消息条目的计算机系统。赋予协议扩展可包括向该消息条目添加(或突加)根据消息协议扩展模式定义的字段。消息协议扩展可包括定义用于表示协议特定属性的格式的电子邮件协议扩展(例如POP3扩展)、即时消息协议扩展、传真协议扩展、新闻组公告协议扩展(例如NNTP或社区新闻扩展)、blog条目协议扩展等。
一般而言,诸如协议特定属性310的协议特定属性表示对一个或多个消息协议特定的属性。可基于电子消息300的兼容性要求把各字段添加到协议特定属性310中或从其中移除字段。例如,协议特定字段311(例如根据协议扩展模式163定义的)和协议特定字段312(例如根据协议扩展模式162定义的)可被添加以提升与相应消息协议的兼容性。协议特定属性310中的竖向省略号表示协议特定属性310也可包括其它协议特定字段。
在图8所示示例中,步骤805包括将一个或多个应用程序扩展赋予已创建消息条目的相应动作(动作804)。动作804可包括将一个或多个应用程序扩展赋予已创建消息条目的计算机系统。赋予应用程序扩展可包括向该消息条目添加(或突加)根据消息应用程序扩展模式定义的字段。消息应用程序扩展可包括定义用于表示应用程序特定属性的格式的电子邮件应用程序扩展(例如为了Microsoft
Outlook
Express、Microsoft
Outlook
、Eudora、Novell GroupWise
等的兼容性)、即时消息应用程序扩展、传真应用程序扩展、新闻组公告应用程序扩展(例如NNTP或社区新闻扩展)、blog条目应用程序扩展等。
一般而言,诸如应用程序特定属性320的应用程序特定属性表示对一个或多个消息应用程序特定的属性。可基于电子消息300的兼容性要求把各字段添加到应用程序特定属性320中或从其中移除字段。例如,应用程序特定字段321(例如根据应用程序扩展模式167定义的)和应用程序特定字段322(例如根据应用程序扩展模式168定义的)可被添加以促进与相应消息应用程序的兼容性。应用程序特定属性320中的竖向省略号表示应用程序特定属性320也可包括其它应用程序特定字段。
其它数据库条目也可根据模式分级结构150或模式分级结构200中的模式来创建。图4示出了根据本发明原理格式化的示例内容部分400。内容部分400可包括根据内容模式(例如内容模式156)格式化的各字段。消息链接字段401可被赋予一消息关系,它表示从内容部分400到电子消息的链接。内容类型字段402可表示对应于内容部分400的一内容类型。顺序字段403可表示对应于内容部分400的顺序。内容字段408可表示对应于内容部分400的消息数据(例如电子邮件消息的文本)。
当内容部分400是一附件时,内容部分400可任选地包括附件类型字段406和MIME URL字段407。附件类型字段405表示内容部分400的附件类型。MIMEURL字段407表示与对应于内容部分400的MIME路径的链接。
图5示出了根据本发明原理格式化的示例消息附件500。消息附件500可包括根据一附件模式(例如附件模式157)定义的各字段。消息链接字段501可被赋予一消息关系,它表示从消息附件500到电子消息的链接。类型字段502表示通过链接字段501中的链接所连接到的电子消息的消息类型。IsPinned字段503表示关于通过链接字段501中的链接所连接到的电子消息的消息附件500删除状态。IsTrusted字段504表示与消息附件500相关的信任信息。
附件状态字段506表示消息附件500的类型和行为。附件源字段507可被赋予一关系,它表示访问消息附件500时与数据库条目的链接。SaveFromField 508可被赋予表示与消息附件500的链接的一关系。附件数据字段509可表示对应于消息附件500的附件数据(例如MP3的内容)。
图6示出了根据本发明原理格式化的示例社区新闻文件夹600。社区新闻文件夹600可包括根据文件夹模式(例如文件夹模式154)以及可能的一个或多个文件夹扩展模式(例如电子邮件新闻消息应用程序文件夹模式277)定义的各字段。社区范围字段601表示已与社区标题属性同步的来自新闻组社区的物件ID的集合。社区最后刷新字段602表示最后一次被刷新的包括在社区范围字段601中呈现的已同步物件ID集合的新闻组社区的社区动态属性。低物件ID字段603表示包括在社区范围字段601中呈现的已同步物件ID集合的低物件ID。高物件ID字段604表示包括在社区范围字段601中呈现的已同步物件ID集合的高物件ID。
在某些实施例中,根据一消息扩展模式定义的各字段中的值被检索,并用以填充根据另一消息扩展模式定义的各字段。因而,电子消息可进行有效的变换,以与对应于另一扩展模式的协议或应用程序相兼容。图9示出了根据本发明原理用于变换电子消息以与消息扩展兼容的方法900的示例流程图。方法900将参照网络架构100和模式分级机构150进行描述。
方法900包括访问表示电子消息的消息条目的动作(动作901)。动作901可包括访问表示电子消息的消息条目的计算机系统。例如,计算机系统102可访问消息条目107。类似地,计算机系统109可访问消息116或消息条目108。
方法900包括一面向功能性结果步骤(步骤905),用于使用当前赋予的扩展特定字段的值来翻译电子消息条目以与新的消息扩展兼容。步骤905可包括导致使用当前赋予的扩展特定字段的值来翻译电子消息条目以与新的消息扩展兼容的任何相应动作。然而,在图9所示示例中,步骤905包括将一新消息扩展赋予消息条目的相应动作(动作902)。
动作902可包括将新消息扩展赋予消息条目的计算机系统。例如,计算机系统102可将新的消息扩展赋予消息条目107。类似地,计算机系统109可将新的消息扩展赋予消息条目108或消息条目116。新赋予的消息扩展可包括根据消息协议扩展模式或消息应用程序扩展模式定义的一个或多个数据字段。例如,计算机系统109可将新的消息扩展(即时消息应用程序扩展)赋予消息条目107(当前赋予的电子邮件应用程序扩展)以提升与消息应用程序103(即时消息应用程序)的兼容性。电子邮件消息和即时消息可具有一个或多个相似字段。然而,该一个或多个相似字段可不与各种诸如语音消息和传真消息的其它类型动作消息的字段相类似。因此,该一个或多个类似字段未被包括在一般消息模式(例如消息模式152)中。
计算机系统可根据当前赋予的消息扩展和新的消息扩展来发送消息条目。因此,无需复制该消息条目的内容就可向众多应用程序发送单个消息条目。发送但个消息条目增加了不同应用程序接收一致数据的可能性,例如电子邮件应用程序和传真应用程序。
在图9的所示示例中,步骤905包括从一个或多个当前赋予的特定属性中检索至少一个值的相应动作(动作903)。动作903可包括从一个或多个当前赋予的特定属性中检索至少一个值的计算机系统。例如,计算机系统102可从消息条目107或108的一个或多个当前赋予的特定属性中检索至少一个值。类似地,计算机系统109可从消息条目1127或116的一个或多个当前赋予的特定属性中检索至少一个值。
消息应用程序111可以是被配置成变换消息以与其它消息应用程序兼容的应用程序。消息应用程序111可检索例如当前赋予传真应用程序扩展的消息条目116。消息应用程序111可分析传真应用程序扩展的当前赋予属性以判断任一当前赋予属性(即传真属性)是否与任何新属性(例如对应于电子邮件应用程序扩展)相似。例如,传真应用程序和电子邮件应用程序可指示消息是否以相似方法离线存储。因而,所存储的对应于传真应用程序的离线值也可与电子邮件应用程序相关。因此,可从传真应用程序扩展中检索该被存储的离线值。
在图9所示示例中,步骤905可任选地包括将检索到的至少一值赋予至少一个新特定属性的相应动作(动作904)。动作904可包括将检索到的至少一值赋予至少一个新特定属性的计算机系统。例如,计算机系统102可将检索到的至少一值赋予消息条目107或108的至少一个新特定属性。类似地,计算机系统109可将检索到的至少一值赋予消息条目112或116的至少一个新特定属性。
例如,消息应用程序111可将传真应用程序属性的检索值赋为相似电子邮件应用程序属性的值。相应地,被赋予的值可提升与电子邮件应用程序的兼容性。消息应用程序111可将已变换消息(例如像消息条目112)存储在数据库114中或者,消息应用程序可向计算机系统102发送已变换消息(例如像消息条目107)。然后,诸如消息应用程序103的相应电子邮件应用程序可兼容地访问消息条目107。
在某些实施例中,客户机计算机系统可向服务器计算机系统发送电子邮件以作翻译。例如,消息条目108可在消息应用程序108上编写。因此,消息应用程序104可请求消息条目108。相应地,计算机系统102可向计算机系统109提交消息条目108以作翻译。计算机系统109可变换该消息以与消息应用程序104兼容(例如通过填充相应应用程序扩展的各字段)。例如消息条目107的已变换消息可被返回到计算机系统102。消息应用程序104可访问消息条目107。
变换消息条目可包括引用数据库114其它贮仓中的信息。例如,在变换被当前赋予一电子邮件应用程序扩展的消息以与传真应用程序扩展兼容时,消息应用程序可引用联系人贮仓182中的信息。消息应用程序可例如查找对应于具有包含在消息中的电子邮件地址的参与者的电话号码。
图7和以下讨论旨在提供一种本发明可在其中实现的适当计算环境的简要一般说明。尽管不是必需的,本发明将在由个人计算机执行的诸如程序模块的计算机可执行指令的一般上下文中进行说明。一般而言,程序模块包括执行特定任务或实现具体抽象数据结构的例程、程序、对象、组件、数据结构等等。计算机可执行指令、相关联数据结构、以及程序模块代表用来执行在此所揭示方法的诸步骤的程序代码装置的示例。
参照图7,实现本发明的示例性系统具有计算机系统720形式的通用计算设备,包括处理单元721、系统存储器722以及把包括系统存储器722在内的各种系统组件耦合到处理单元721的系统总线723。处理单元721可执行被设计成实现包括本发明特征的计算机系统720特征的计算机可执行指令。系统总线723可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线架构的任一种的本地总线。系统存储器包括只读存储器(ROM)724和随机存储器(RAM)725。含有帮助在个人计算机720中元件之间,如启动期间的信息交换的基本例程的基本输入/输出系统(BIOS)726存储在ROM 724中。
个人计算机720还包括读取和写入硬盘739的硬盘驱动器727、读取或写入可移动磁盘729的磁盘驱动器728、和读取或写入诸如CD ROM或其它光学介质等可移动光盘731的光盘驱动器730。磁性硬盘驱动器727、磁盘驱动器728、光盘驱动器730分别通过硬盘驱动器接口732、磁盘驱动器接口733、光盘驱动器接口734连接至系统总线723。诸驱动器及其相关联计算机可读介质为计算机720提供计算机可执行指令、数据结构、程序模块和其它数据的非易失性储存。尽管在此所述示例性环境采用了磁性硬盘739、可移动磁盘729和可移动光盘731,但可使用其它类型计算机可访问的能够存储数据的计算机可读介质,包括磁卡、闪存卡、数字通用盘、Bernoulli卡、RAM、ROM等等。
包括操作系统735、一个或多个应用程序736、其它程序模块737和程序数据738的一个或多个程序模块的程序代码装置,可以存储在磁性硬盘739、磁盘729、光盘731、ROM 724或RAM 725中。用户可通过诸如键盘740、定位装置742或诸如话筒、游戏杆、游戏垫、扫描仪等等的其它输入装置(未示出)向计算机系统720输入命令和信息。这些和其它输入装置常常通过与系统总线723耦合的输入/输出接口746连接到处理单元721。输入/输出接口746逻辑地表示各种不同接口的任一种,诸如串行端口、PS/2接口、并行端口、通用串行总线(USB)或一电气和电子工程师协会(“IEEE”)1394接口(即FireWire接口),或者甚至可逻辑地表示不同接口的组合。
监视器747或其它显示装置也通过视频接口748和系统总线723相连。扬声器769或其它音频装置也可通过音频接口749连接到系统总线723。其它外围输出装置(未示出),如打印机,也可连接到计算机系统720。
计算机720可与诸如办公室范围、企业范围的计算机网络、家庭网络、企业内联网、和/或因特网的网络相连。计算机系统720可与这些网络上诸如远程计算机系统、远程应用程序、和/或远程数据库的外部源交换数据。
计算机系统720包括网络接口753,通过它计算机系统720可从外部源接收数据和/或向外部源传送数据。如图7所示,网络接口753便于通过链接751与远程计算机系统783交换数据。网络接口753可逻辑地表示一个或多个软件和/或硬件模块,诸如网络接口卡和相应的网络驱动器接口标准(“NDIS”)堆栈。链接751表示网络的一部分(例如以太网分段),而远程计算机系统783表示网络的节点。
类似地,计算机系统720包括输入/输出接口746,通过它计算机系统720可从外部源接收数据和/或向外部源传送数据。输入/输出接口746通过数据链接759与调制解调器754(例如标准调制解调器、电缆调制解调器、或数字预订线路(“DSL”)调制解调器)耦合,通过该链接计算机系统720可从外部源接收数据和/或向外部源传送数据。如图7所示,输入/输出接口746便于通过链接752与远程计算机系统793交换数据。链接752表示网络的一部分,而远程计算机系统793表示网络的节点。
尽管图7表示了适于本发明的操作环境,可在任何能够实现本发明原理的系统(如必要作适当修改)中采用本发明原理。图7所示的环境仅是说明性的,而决不表示其中可实现本发明原理的各种各样环境的甚至一小部分。
本发明可体现为其它特定形式,而不背离其精神或本质特征。所述诸实施例在所有方面都应仅仅被视为是说明性的,而不是限制性的。因此,本发明的范围由所附权利要求书而不是前面的说明书来指出。在权利要求书的等效技术方案含义和范围内的所有变化被包含在其范围内。