具体实施方式
此处描述的本发明提供了用于提供含有访问电子邮件服务(由电子邮件系统实现)和IM服务(由IM系统实现)的界面的单个应用程序的方法、系统和制品。该应用程序允许用户使用一次登录访问两个服务。电子邮件服务可以与本地消息通信程序客户端或者基于浏览器的客户机集成。在一个实施例中,如果系统确定用户已经登录至本地消息通信程序客户机,那么通过该客户机提供IM服务。如果系统确定用户没有登录至本地消息通信程序客户机,那么该系统使用基于浏览器的客户端向用户提供对IM服务的访问。
用户可以指示他或她是否应该在电子邮件登录的时候自动登录至IM服务。向用户和用户消息通信程序联系人中的每一个提供存在(即在线状态)指示。存在信息指示用户和联系人是否登录至IM服务。如果用户登录至IM服务的消息通信程序服务器,则不管使用何种客户端,用户都拥有默认地被设为“在线”的存在。如果用户没有登录至IM服务的消息通信程序服务器,那么用户拥有被设为“离线”的存在。
本发明包括允许用户发送和接收电子邮件、发送和接收即时消息、管理电子邮件联系人列表和消息通信程序联系人列表以及使用即时消息回复电子邮件的系统和方法,以上操作都是通过一公共界面来完成的。当发送含有附加文件的电子邮件时,用户可以选择通过IM服务或者通过电子邮件服务来发送附加文件。IM系统可以检测与新电子邮件相关联的警报以及与用户相关联的即时消息。在为用户检测警报之后,由IM系统提供可视指示器。该指示器可以是可视指示器,诸如吐司形块(toast),或者某些其它指示器。如果用户选择了该吐司形块,那么系统更新界面来提供关于该吐司形块的信息(例如,用于新电子邮件的阅读电子邮件界面或用于新即时消息的对话窗口)。其它视觉警报是可能,且在本发明的范围之内。
如果用户在登录时不拥有IM服务的帐户,那么系统可以显示该用户的状态为在线,但不实际将该用户登录至IM服务。这允许其它用户启动与该用户的对话,但是在用户不利用服务的情况下阻止与消息通信程序服务器(与登录进程相关联)的不必要的通信量。如果在这种状态中的用户请求发送即时消息,或者从另一用户处接收即时消息,那么web IM客户端将用户登录至IM服务。
图1到4C示出了用于访问本发明的系统的界面页面的各种实施例。界面页面提供电子邮件和IM服务的信息及对其的访问。在一个实施例中,页面包括即时消息通信状态信息和即时消息通信服务访问链接。即时消息通信状态信息包括用户以及用户的电子邮件联系人和消息通信程序联系人的存在指示器。即时消息通信服务链接包括到电子邮件系统和IM系统的功能的链接或按键,诸如:即时响应链接,它通过消息通信程序系统发送对电子邮件的即时回复;添加消息通信程序联系人链接,它将一个或多个电子邮件联系人添加至消息通信程序联系人列表;传输文件链接,它使用IM系统向电子邮件的接收者发送附加文件;即时消息通信会话接受链接,它接受IM会话邀请;警报链接,它提供对与警报相关联的信息的访问;以及下文关于图1到13描述的其它功能。
图1示出了呈现在网页100中用于访问IM和电子邮件服务的界面的实施例。界面100包括窗口110、统一资源定位器(URL)120、网页标题130、用户标识符140、用户存在指示器150、IM系统消息160和页面内容170。
可以通过诸如由“MICROSOFT”公司提供的Internet Explorer等web浏览器来提供界面页面。web浏览器呈现从URL 120接收到的数据的网页。通过因特网向浏览器提供数据。网页标题130可以包括对提供该页面的服务的描述、该页面提供的功能以及广告。在窗口110中,网页标题130包括“Network Email and IMService(网络电子邮件和IM服务)”的服务描述以及“Greeting(欢迎)”的页面描述。
用户标识符140是用户在整个服务域上的唯一的标识符。在一个实施例中,唯一标识符140是含有诸如JoeSmith2network.com等格式的电子邮件地址。用户存在指示器150指示用户的存在。“存在”指的是用户是否登录至IM系统。如果用户没有登录至IM系统,那么用户在该系统中的存在被设为“离线”。如果用户登录了,那么用户的存在被设为“在线”。在一个实施例中,仅当相关联的用户登录时,显示用户存在指示器150。在某些实施例中,取决于用户是否登录,用户存在指示器150可以拥有不同的外观。例如,如果相关联的用户登录了,用户存在指示器150可以是红色的圈,如果用户没有登录,那么是绿色的圈。可以使用众多变化,包括不同的形状、颜色、大小、文本效果和格式等。在某些实施例中,用户的存在可能不能准确地反映用户是否实际在线。例如,用户可以指示当他登录至IM系统时将其存在显示为在线或离线。在一个实施例中,系统可以将用户的存在设为“在线”,尽管他没有登录至IM系统。该情形将在下文更详细描述。
IM系统消息160指示关于用户的IM状态的信息。图1中,IM系统消息160指示用户目前“正在登录(Signing in...)”至IM系统。其它IM系统消息信息160可以包括用户是否在线、离线,是否有新的即时消息、新的消息通信程序联系人等。窗口110的页面内容170包括关于用户的电子邮件和IM特征的信息,包括消息和消息文件夹。在所示实施例中,可以在系统将用户登录至IM系统时提供窗口110的界面。
图2示出了呈现在网页200中用于管理IM和电子邮件联系人的界面的实施例。界面200包括窗口210、URL 220、网页标题230、用户标识符140、用户存在指示器150、IM系统消息260、电子邮件联系人列表280、联系人存在指示器282、联系人选择器图标284、联系人昵称286以及联系人标识符288。
网页标题230反映了界面页面管理联系人的目的。用户标识符140和用户存在指示器150与关于图1描述的一样。
电子邮件联系人列表280是电子邮件服务中与用户标识符140相关联的联系人的列表。联系人存在指示器282指示电子邮件联系人列表中的相关联联系人的存在。联系人标识符288指示电子邮件服务域内的唯一标识符。在所示实施例中,每一联系人标识符是通过显示或省略相关联联系人存在指示器来与存在相关联的。这样,联系人标识符Alisonnetwork.com是与联系人存在指示器一起显示的,因此是在线的。在一个实施例中,用户可以提供选择存在指示器的输入。一旦被选中,用户可以向与存在指示器相关联的联系人发送即时消息。这将在下文更详细讨论。联系人标识符cindyanetwork.com具有红色的联系人存在指示器,意味着该联系人离线。
联系人选择器图标284用于选择联系人来删除、添加或用其它方式执行动作。在一个实施例中,联系人选择器图标用作添加消息通信程序联系人链接,用于向用户的消息通信程序联系人列表添加电子邮件联系人。联系人昵称286是与联系人标识符相关联的名字。
图3示出了呈现在网页300中用于提供与IM信息集成的收件箱的界面的实施例。界面300包括窗口310、URL 320、网页标题330、用户标识符140、用户存在指示器150、IM系统消息260、收件箱内容370、加亮的联系人标识符372、联系人存在指示器374、联系人标识符376以及吐司形块380。元素140、150和260分别关于图1和2讨论。
窗口310内的电子邮件收件箱内容370提供寄给用户并由电子邮件系统接收的邮件消息的列表。未打开消息以某种方式标识,诸如文本效果。例如,与用户指示器372 alisonnetwork.com相关联的未读消息是粗体的,指示它还没有被读过。如图所示,与用户指示器372相关联的用户拥有联系人存在指示器374且是在线的。当用户选择了联系人存在指示器374,可以向与联系人标识符372相关联的联系人发送即时消息。这将在下文更详细讨论。
响应于事件的发生提供可视指示器380。事件可以是接收对新邮件消息、新即时消息的警报,或者是某些其它事件。在一个实施例中,可视指示器是由IM系统响应于事件而提供的吐司形块。
图4A示出了呈现在网页400中用于提供集成的邮件内容和IM能力的界面的实施例。界面400包括窗口410、URL 420、网页标题430、用户指示器140、消息动作栏150、发送者存在指示器452、即时回复按键454、电子邮件标题信息460、备选发送者存在指示器462以及电子邮件正文470。元素140和150关于图1描述。
消息动作栏450包括表示可以由本发明的系统执行的动作的链接。在界面页面的其它地方提供其它链接。例如,即时回复按键454和发送者存在指示器462是即时响应链接,因为提供选择两者之间的任一个的输入都将生成对电子邮件发送者的即时响应。在所示的实施例中,提供了链接作为表示可以对于电子邮件执行的动作的按键。当接收到选择即时回复链接或按键的454的输入时,由IM系统启动用户和电子邮件发送者之间的IM会话或对话。该过程将在下文更详细讨论。在所示的实施例中,在即时回复按键454中提供发送电子邮件的个人的联系人存在指示器452。在某些实施例中,发送者的存在可以位于内容页面410的其它地方,诸如在电子邮件标题信息460中的备选发送者存在指示器462中。
图4B示出了呈现在网页480中用于提供通过系统界面窗口提供的对话窗口的界面的实施例。对话窗口被提供来实现对由用户接收的电子邮件的即时回复。对话窗口482包括发送者存在指示器483、发送者指示器484、对话历史窗口486以及文本输入窗口488。对话窗口482是用于显示图4A中的用户和消息发送者之间的IM对话的界面。IM对话窗口482是在选择了界面400的即时回复链接454之后由IM系统提供的。用户可以在文本输入窗口488中键入发给电子邮件发送者的消息。由于发送者和用户彼此发送即时消息,消息文本向上滚动通过对话历史窗口486。对话窗口可以由本地消息通信程序客户端或基于浏览器的客户端提供。
图4C示出了呈现在网页490中用于提供消息通信程序联系人列表选择窗口的界面的实施例。界面页面490包括界面页面491和消息通信程序联系人列表选择窗口492。消息通信程序联系人选择窗口492包括用户标识符493、用户状态指示器494、用户状态消息495、消息通信程序联系人列表496、联系人存在指示器497、在线联系人昵称498以及离线联系人昵称499。在从界面页面中选择向联系人发送即时消息之后,显示消息通信程序联系人选择窗口492。窗口492提供联系人列表496以及其对应的在线指示器497。用户选择联系人以与其启动IM会话。如果用户选择了诸如联系人498等目前登录至IM系统的联系人,那么将如图4B所示出现对话窗口。如果用户选择了诸如联系人499等目前没有登录至IM系统的联系人,那么将发送给联系人离线消息。请求与联系人的IM会话将在下文更详细讨论。
图5A示出了用于提供集成的IM和电子邮件服务的系统500的一个实施例。系统500包括警报服务器510、地址簿服务器511(ABS)、IM系统530和电子邮件系统532。IM系统530包括消息通信程序服务器515和web IM服务器517。电子邮件系统532包括电子邮件存储512、入站电子邮件模块513、电子邮件服务器516以及电子邮件web服务器518。
系统500与ISP 514和计算机522交互。计算机522包括本地消息通信程序客户端519、浏览器进程520以及web浏览器521。在一个实施例中,可能存在多个计算机设备522(未示出)与系统500通信。图5中的每一元件的操作将在下文更详细讨论。
电子邮件系统与web浏览器520交互以提供实现电子邮件服务以及IM服务的界面页面。电子邮件系统也执行关于电子邮件web服务器518、电子邮件服务器516和电子邮件存储512所描述的功能。IM系统与浏览器进程520和本地消息通信程序客户端519交互,并执行如关于webIM服务器517和消息通信程序服务器515描述的功能。
警报服务器510从电子邮件服务器516接收警报包,并将通知传递给消息通信程序服务器515。通知可以包括关于域中的用户所接收的新电子邮件、IM和联系人列表请求的信息。
ABS 511存储用户信息。用户信息可以包括电话、电子邮件、地址、用户联系人列表(例如,地址簿、电子邮件联系人列表、消息通信程序联系人列表(即好友列表)、电子邮件服务列表以及其它列表)和其它信息。电子邮件存储512包括存储邮件内容的数据存储设备。入站电子邮件模块513为特定域中的用户接收来自ISP 514的电子邮件并向警报服务器510提供警报。
消息通信程序服务器515处理IM系统的即时消息特征。消息通信程序服务程序515作为诸如本地消息通信程序客户端等本地消息通信程序客户机应用程序和在web浏览器上实现的基于浏览器的客户端之间的连接的代理。消息通信程序服务器515也处理初始化会话连接、存在信息和通知路由。消息通信程序服务器515将在下文更详细讨论。
电子邮件服务器516向电子邮件web服务器518提供电子邮件数据,并向ABS511发送并从中接收数据。在某些实施例中,电子邮件服务器516维护延迟登录指示器和自动登录指示器。
web IM服务程序517是消息通信程序服务器515和浏览器进程520之间的中介。web IM服务器517为服务的用户维护用户会话指示器。指示器可以是标志,例如NetworkIMSession(网络IM会话)标志,它指示用户目前是否正通过web IM服务器517登录至消息通信程序服务器515。
电子邮件web服务器518提供网络页面数据超文本标记语言(HTML)代码。电子邮件服务器560也将浏览器进程520装载至web浏览器521中,并向浏览器进程520发送诸如javascript等脚本指令以实现IM服务。
本地消息通信程序客户端519是提供IM用户界面并将从消息通信程序服务器515中接收到的数据与对应的消息通信程序联系人相关的独立程序。本地消息通信程序客户端519维护客户端消息通信程序会话指示器。该指示器可以是例如ClientIMSession(客户端IM会话)标志等标志,它指示用户目前是否正通过本地消息通信程序客户端519登录至IM系统530。本地消息通信程序客户端也可以提供应用程序接口(API)来向消息通信程序联系人发送诸如电子邮件附件等文件。在某些实施例中,调用方法来开始与消息通信程序联系人的对话,但指定空值而非内容标识符将返回消息通信程序联系人选择界面。这允许应用程序从本地消息通信程序客户端519中检索消息通信程序联系人列表。用户然后可以选择消息通信程序联系人并开始对话。
web浏览器521呈现由电子邮件web服务器518主存的网页。web浏览器521也与本地消息通信程序客户端519通信。在一个实施例中,本地消息通信程序客户端519提供允许web浏览器521使用本地消息通信程序客户端519发送和传输数据的“ACTIVEX”API。“ACTIVEX”是由华盛顿州雷德蒙市的微软公司提供的允许不同应用程序之间共享信息的一组技术。在一个实施例中,“ACTIVEX”控件被下载并嵌入至web浏览器521中。在另一个实施例中,本地消息通信程序客户端519能够在运行web浏览器521的计算机设备上预先安装ActiveX控件。该控件用于调用本地消息通信程序客户端519中的API。当web浏览器521中的控件对本地消息通信程序客户端519中的API发出调用时,web浏览器521可以在调用中包含数据请求。数据请求可以查询ClientIMSession标志值、用户的哪些消息通信程序联系人正在登录、将用户从本地消息通信程序客户端519中注销的请求以及其它动作和信息。
在一个实施例中,当web浏览器521在此处被描述为向本地消息通信程序客户端519发送请求或查询时,web浏览器521可以使用“ACTIVEX”控件来向本地消息通信程序客户端519的ActiveX控件发送该请求或查询。该API也能够处理对应的本地消息通信程序客户端519响应。
浏览器进程520与IM系统530通信并执行与基于浏览器的IM客户端相关联的任务,这将在下文更详细讨论。在一个实施例中,浏览器进程520可以使用由电子邮件服务器560下载的构造来实现。该构造可以使得文档能够被嵌入至由电子邮件服务器560提供的主HTML文档中。贯穿本发明,浏览器进程520被称为WebIM或浏览器进程,这些术语旨在是可互换的。
在某些实施例中,该构造能够被实现为内联框架(iframe)。内联框架将文档嵌入至HTML文档中。当呈现使用内联框架嵌入的文档时,web浏览器521将向内联框架元素中涉及的服务器URL发送文档请求。当检索该文档后,在内联框架窗口中显示该文档。在当前的情况下,接收了文档,但是没有显示内联框架窗口。内联框架可以具有以下形式:
<iframe src=”URL”更多属性>
不支持框架的浏览器的备选内容
</iframe>
典型的HTTP请求是对内联框架做出的对服务器URL的请求。服务器不知道做出请求的web服务器521将如何使用文档。
在图5A的系统中,内联框架是嵌入在由电子邮件系统532提供的网页中的。嵌入的内联框架使web浏览器521向IM系统530请求文档。IM系统530向web浏览器521提供文档,web浏览器521进而将文档提供给内联框架。内联框架然后如由电子邮件系统532所指导的从检索到的文档中提取数据。在一个实施例中,这是由电子邮件系统532提供的脚本文件中的指令完成的。该脚本可以是iavascript或者是某种其它类型的脚本。这样,在一个实施例中,可以使用诸如内联框架等嵌入的构造来实现浏览器进程520对IM系统530的请求或查询。另外,该构造可以基于检索到的文档执行动作。例如,当检索到警报信息时,该构造可以提供视觉指示器,当接收的新的IM时,该构造可以提供对话窗口。
浏览器进程520向电子邮件系统532发送关于所接收到的警报、用户登录至哪个IM服务、用户存在信息以及用户联系人存在信息的数据。IM服务器也处理警报并生成web IM窗口和界面,包括新邮件警报、新IM消息警报以及新对话窗口。
系统500也可以包括确认组件和界面组件(未示出)。确认组件允许用户使用服务帐户信息访问电子邮件系统和IM系统,这将在下文更详细讨论。界面组件提供含有即时消息通信状态信息和即时消息通信系统访问的界面。系统500也可以包括提供允许拥有服务访问帐户的用户通过诸如图1-4C的网页中呈现的公共界面与电子邮件系统和即时消息发送系统交互的应用程序的应用程序服务器。在一个实施例中,系统500也可以包括含有多个用户的服务器访问帐户信息的数据存储。
计算设备522将参考图5B更详细描述。在某些实施例中,计算设备522以及图5A的服务器、存储设备和其它元件可以使用图5B的计算系统环境来实现。图5B示出了可在其上实现本发明的合适的计算系统环境550的示例。计算系统环境550只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境550解释为对示例性操作环境550中示出的任一组件或其组合有任何依赖性或要求。
本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。
本发明可在诸如由计算机执行的程序模块等计算机可执行指令的通用语境下描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图5B,用于实现本发明的一个示例性系统包括计算机551形式的通用计算设备。计算机551的组件可以包括,但不限于,处理单元552、系统存储器553和将包括系统存储器在内的各种系统组件耦合至处理单元552的系统总线585。系统总线585可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展的ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。
计算机551通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机551访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机551访问的任何其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。
系统存储器553包括易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)554和随机存取存储器(RAM)555。基本输入/输出系统556(BIOS)包含有助于诸如启动时在计算机551中元件之间传递信息的基本例程,它通常存储在ROM 554中。RAM 555通常包含处理单元552可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例,而非限制,图5B示出了操作系统557、应用程序558、其它程序模块559和程序数据560。
计算机551也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图5B示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器561,从可移动、非易失性磁盘570中读取或向其写入的磁盘驱动器569,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘572中读取或向其写入的光盘驱动器571。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器562通常由不可移动存储器接口,诸如接口561连接至系统总线585,磁盘驱动器569光盘驱动器571通常由可移动存储器接口,诸如接口568连接至系统总线585。
以上讨论和在图5B中示出的驱动器及其相关联的计算机存储介质为计算机551提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图5B中,硬盘驱动器562被示为存储操作系统563、应用程序564、其它程序模块565和程序数据566。注意,这些组件可以与操作系统557、应用程序558、其它程序模块559和程序数据560相同或不同。操作系统563、应用程序564、其它程序模块565和程序数据566在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘580和定点设备574(通常指鼠标、跟踪球或触摸垫)向计算机511输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。
这些和其它输入设备通常由耦合至系统总线的用户输入接口573连接至处理单元552,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器591或其它类型的显示设备也经由接口,诸如视频接口590连接至系统总线585。除监视器以外,计算机也可以包括其它外围输出设备,诸如扬声器597和打印机596,它们可以通过输出外围接口595连接。
计算机551可使用至一个或多个远程计算机,诸如远程计算机581的逻辑连接在网络化环境中操作。远程计算机581可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机551描述的许多或所有元件,尽管在图5B中只示出存储器存储设备582。图5B中所示逻辑连接包括局域网(LAN)576和广域网(WAN)578,但也可以包括其它网络。这样的网络环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用时,计算机551通过网络接口或适配器575连接至LAN 576。当在WAN网络环境中使用时,计算机551通常包括调制解调器577或用于通过诸如因特网等WAN 578建立通信的其它装置。调制解调器577可以是内置或外置的,它可以通过用户输入接口573或其它合适的机制连接至系统总线585。在网络化环境中,相对于计算机551所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图5B示出了远程应用程序583驻留在存储器设备582上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
为了访问由图5A和5B的系统提供的服务,用户必须首先登录至系统。如上所述,仅需要一次登录来访问电子邮件系统532和IM服务532两者。在一个实施例中,服务访问帐户信息存储在系统500内的数据存储(未示出)中,或者可由图5A的系统500访问。拥有服务帐户信息内的服务访问帐户的用户可以访问邮件系统532和IM系统530。图6示出了用于为电子邮件和IM服务集成登录序列的方法600的一个实施例。
方法600在步骤605处开始,在这里用户登录至电子邮件系统532。用户仅需对电子邮件系统432和IM系统530的一次登录。步骤605的登录步骤是在用户被准许访问电子邮件系统532和IM系统530之前的对用户的确认。该确认是由图5的系统500的确认组件(未示出)执行的。登录至电子邮件系统532涉及通过界面接收用户标识信息,诸如与标识信息相关联的用户标识符和口令。在一个实施例中,登录信息可以通过由与电子邮件系统532通信的web浏览器521提供的界面来接收。一旦接收之后,将登录信息发送给电子邮件系统532。电子邮件系统532确认用户标识符是有效的,且口令对应于与该用户标识符相关联的所存储的口令。在一个实施例中,电子邮件系统532通过向用户确认服务(图5中未示出)请求确认来确认用户标识符是有效的。用户确认服务确认用户是有效的。
一旦用户登录之后,电子邮件系统532在步骤610处向ABS 511发送同步请求。执行同步以对电子邮件系统532更新用户没有登录时持久保存的用户数据变化。在一个实施例中,同步请求包括用户标识符和指示电子邮件系统532检索用户信息的最近一次的时戳。有了这些信息,ABS 511可以为用户检索自从电子邮件系统532上一次执行同步以来改变的信息。接收到请求之后,ABS 511检索与用户标识符相关联的用户联系人列表和其它数据。然后在步骤630处,ABS 511将所请求的用户信息连同时戳一起发送给电子邮件系统532。
在步骤620处,电子邮件系统532确定用户是否位于支持集成的WebIM的场所。在一个实施例中,如由用户正在访问服务所使用的规则和规定所确定的,电子邮件和IM服务的集成可能是不可能的。在一个实施例中,为种种原因,服务器管理员可能想要限制访问。在一个实施例中,服务管理员可以是个人或诸如计算机等机器。如果集成的电子邮件和IM服务在用户正在试图登录的位置是不可能的,那么操作继续至步骤625处。如果支持集成,那么操作继续至步骤630处。
在步骤630处,电子邮件系统532确定与用户标识符相关联的消息通信程序联系人列表是否包括一个或多个消息通信程序联系人。如果消息通信程序联系人列表不包含任何联系人,那么在步骤635处设置用户的Web IM延迟登录指示器以指示延迟,且操作然后继续至步骤625处。在一个实施例中,Web IM延迟登录指示器可以被实现为标志,例如DelayLoginFlag(延迟登录标志)。如果电子邮件系统532还没有用户的消息通信程序联系人列表的高速缓存的版本,那么在步骤610处电子邮件系统532可以从ABS 511中检索列表。
在步骤630处,如果用户消息通信程序联系人列表含有一个或多个联系人,那么操作继续至步骤640处,在那里电子邮件系统532确定是否对用户启用了自动登录或Web IM自动登录指示器。用户的Web IM自动登录指示器指示电子邮件系统532是否应该在电子邮件登录完成后将用户自动登录至IM系统530。自动登录指示器可以由电子邮件系统532存储,且可以采取诸如AutoLogin(自动登录)标志等标志的形式。如果未启用自动登录,那么操作继续至步骤635。在步骤635处,Web IM延迟登录指示器被设为真。操作然后从步骤635继续至步骤625,在那里Web IM启用指示器被置为“假”。Web IM启用指示器指示集成的电子邮件和IM服务对于当前登录体验是否对用户可用。在步骤625处,Web IM启用指示器被设置来反映集成的电子邮件和IM服务将对用户不可用。操作从步骤625前进至步骤650。
在步骤640处,如果启用了自动登录,那么操作继续至步骤645,在那里Web IM启用指示器被置为真。对指示器的这一设置表示集成的电子邮件和IM服务将被提供给当前用户。操作然后继续至步骤650处。
在步骤650处,电子邮件系统532确定用户是否登录到本地消息通信程序客户端519。在一个实施例中,执行若干步骤来作出该确定。web浏览器521向本地消息通信程序客户端519发送会话查询。会话查询可以由装载至web浏览器521的调用本地消息通信程序客户端519中的“ACTIVEX”API的“ACTIVEX”控件来实现。该查询请求客户端消息通信程序会话指示器的值,且包括登录至电子邮件服务的用户的用户标识符。本地消息通信程序客户端519接收该查询、确定用户是否登录至本地消息通信程序客户端519、并向web浏览器521提供响应。web浏览器521接收到该响应,并在对电子邮件系统532的响应中提供客户端消息通信程序会话指示器值和用户指示器。电子邮件系统532然后确定该用户是否通过本地消息通信程序客户端519登录至IM系统530。
在步骤650处,如果用户通过本地消息通信程序客户端519登录,操作继续至步骤652处,在那里电子邮件系统532将用户存在设为在线。如图1-4C的界面所示,然后可以在服务页面中提供用户存在。涉及IM服务的后续任务将通过本地消息通信程序客户端实现,只要用户通过本地消息通信程序客户端访问IM系统530。
如果在步骤650处,电子邮件系统532确定用户没有通过本地消息通信程序客户端519登录,那么操作继续至步骤660。在步骤660处,电子邮件系统532确定Web IM启用指示器是否被置为真。Web IM启用指示器在本方法的前面步骤中设置,且由电子邮件系统532存储。如果Web IM启用指示器被置为真,那么操作继续至步骤662。如果Web IM启用指示器被置为假,操作继续至步骤664。在步骤662处,电子邮件系统确定不能使用集成的电子邮件和IM服务,且不应为当前会话实现集成的电子邮件和IM服务。在步骤664处,电子邮件系统确定Web IM自动登录指示器值。如果Web IM自动登录具有置为真的值,那么操作继续至步骤670。否则,操作继续至步骤684。在步骤684处,用户将不自动登录且用户的存在将被设置为“离线”。在步骤684处,Web IM或浏览器进程向电子邮件系统532发送请求以将用户的状态更新为“离线”。电子邮件系统532然后将用户状态置为“离线”。
在步骤670处,电子邮件系统532访问并确定Web IM延迟登录指示器的值。如果在步骤670处,Web IM延迟登录指示器要求延迟的用户登录(即,具有真值),那么电子邮件系统532在步骤672处将用户的存在设置为在线,但是用户不登录至IM系统530。Web IM延迟登录指示器指示用户还没有将任何消息通信程序联系人添加至他或她的IM帐户。不拥有消息通信程序联系人的用户先前没有访问过IM服务(启动IM对话需要联系人)。将用户列为在线允许其它人启动与该用户的对话。然而,通过不将登录资源与可能对IM服务没有兴趣的用户绑定,不将用户登录减少不必要的通信量。
如果在步骤670处,Web IM延迟登录指示器不指示登录应该被延迟,那么在步骤674处将用户的存在状态置为“正在连接”,且在步骤676处将浏览器进程520装载至web浏览器521中。在一个实施例中,浏览器进程520从电子邮件系统532装载至web浏览器521。下一步,在步骤677处,web浏览器试图将用户登录至IM系统530。在一个实施例中,登录进程以浏览器进程520向IM服务530发送登录请求开始。浏览器进程登录可以包括用于在步骤605处登录至电子邮件服务的用户标识符和口令。
在一个实施例中,IM服务的登录序列可以如下执行。web IM服务器517从浏览器进程520中接收登录请求。web IM服务器生成消息通信程序服务程序登录请求,并向消息通信程序服务器530发送该请求。消息通信程序服务器530接收到消息通信程序服务器登录请求,并向ABS 511发送用户确认请求。在另一实施例中,用户确认请求被发送给用户确认服务。用户确认请求可以包括用户标识符和口令。如果登录信息是有效的,则ABS 511或用户确认服务确认该用户标识符存在。消息通信程序服务器然后调用ABS,且ABS向IM系统530发送包含用户标识符以及与该用户标识符相关联的消息通信程序联系人列表的响应。否则,ABS 511向IM系统530返回出错消息。IM系统530接收到ABS 511的响应,并确定是否有消息通信程序联系人列表中的任何联系人在线。IM系统530向web IM服务器517提供用户标识符、用户消息通信程序联系人列表以及每一联系人的存在的指示。webIM服务器517然后生成包括所接收到的信息的响应,并将该响应发送给浏览器进程520。浏览器进程520然后将该信息转发给电子邮件系统532。
如方法600的组690所示,步骤677、680、682和684是由Web IM或者浏览器进程执行的。在步骤680处,Web IM(浏览器进程520)确定登录是否成功。如果登录成功,那么在步骤682处,Web IM向电子邮件系统532发送将IM状态更新为“在线”的请求。操作然后继续至步骤652处,在步骤652处,电子邮件系统532将用户存在设置为在线。如果登录不成功,那么Web IM客户端向电子邮件系统532发送将用户状态更新为“离线”的请求。然后在步骤686处,电子邮件系统532将状态更新为离线。
在一个实施例中,如果用户登录至电子邮件系统532但是没有登录至IM系统530,那么电子邮件系统530将监视本地消息通信程序客户端519的连接以维护准确的存在状态。因为客户端连接可以随时间变化,因此电子邮件系统532可以连续地检查本地消息通信程序客户端的状态。图7中示出了用于监视本地消息通信程序客户端连接的方法700。在步骤710处,用户登录至电子邮件系统532但是没有登录至IM系统530。用户可以登录或不登录至本地消息通信程序客户端519。在步骤720处,web浏览器521装载含有当前用户存在的界面。web浏览器521然后在步骤730处确定是否接收到要求装载新的界面的输入。如果在步骤730处没有接收到新界面选择,那么操作维持在步骤730处,直到接收到这样的输入。
一旦在步骤730处接收到要求由web浏览器521装载新界面的输入,那么在步骤740处,web浏览器521向电子邮件系统532发送该输入。在步骤750处,电子邮件系统532确定将要装载的界面页面是否触发IM服务登录。在一个实施例中,触发IM服务登录的界面包括用于发送新的即时消息、发送即时回复以及添加联系人的界面。因为这些界面页提供IM服务,所以它们触发IM服务登录。如果电子邮件系统532确定所请求的界面页面要求IM服务登录,那么操作继续至步骤755。在步骤755处,系统将执行用户登录进程。在一个实施例中,可以如上所述执行用户登录进程。
如果电子邮件系统532确定新的界面不触发IM会话登录,那么操作继续至步骤760处,在那里web浏览器521为用户会话状态调用本地消息通信程序客户端519。本地消息通信程序客户端519接收到该调用,并向web浏览器521提供用户会话状态。web浏览器521向电子邮件系统532提供会话状态。如果在步骤770处,该响应指示用户登录至本地消息通信程序客户端519,那么在步骤774处电子邮件系统532将用户存在设置为在线。如果在步骤770处该响应指示用户没有登录至本地消息通信程序客户端519,那么在步骤772处电子邮件系统532将用户存在设置为离线。操作然后从步骤774和772返回至步骤720处。
除了如方法700中所讨论的确定用户存在状态之外,IM系统530也可以确定消息通信程序联系人用户的存在信息。联系人可以在提供电子邮件或IM系统信息的界面页面上显示。图8示出了用于提供用户联系人的存在信息的方法800的一个实施例。方法800以步骤810开始,在那里用户选择显示含有联系人存在信息的消息通信程序联系人的界面页面。在一个实施例中,具有联系人存在信息的页面可以包括收件箱、阅读消息、联系人列表或由电子邮件系统532提供的类似页面。
下一步,在步骤820处,电子邮件系统532必须确定用户是否登录至本地消息通信程序客户端。在一个实施例中,电子邮件系统532通过在脚本文件中向网络浏览器521发送指令来确定。当接收到脚本文件后,web浏览器521向本地消息通信程序客户端519发送会话查询信息。在一个实施例中,电子邮件系统532指导web浏览器521使用ActiveX控件发送查询以调用在本地消息通信程序客户端519中实现的ActiveX API。对本地消息通信程序客户端519的会话查询包括用户标识符。本地消息通信程序客户端519的API接收该调用,并确定用户当前是否登录至本地消息通信程序客户端519。在一个实施例中,访问ClinetIMSession(客户端IM会话)标志来作出这一确定。然后ActiveX API向web浏览器521提供响应。该响应包括用户标识符和用户在本地消息通信程序客户端519上的登录状态。web浏览器521接收该响应,并将会话信息转发给电子邮件系统532。电子邮件系统532从web浏览器521处接收会话信息,并确定用户是否登录至本地消息通信程序客户端519。
如果在步骤820处,电子邮件系统532确定用户登录至本地消息通信程序客户端519,那么操作继续至步骤830。如标号832所示,步骤830是由本地消息通信程序客户端执行的。如果电子邮件系统532确定用户没有登录至IM系统530,那么操作继续至步骤840。如果用户使用本地消息通信程序客户端登录至IM系统530,那么操作继续步骤830,在那里对本地消息通信程序API做出调用以获得消息通信程序联系人的存在信息。在一个实施例中,web浏览器521发出该调用,并检索用户消息通信程序联系人的存在。在一个实施例中,电子邮件系统532向web浏览器521发送指令以检索消息通信程序联系人列表中的联系人的存在。
在步骤840处,电子邮件系统532可以向浏览器进程520发送指令以确定用户是否通过基于浏览器的客户端或本地消息通信程序客户端登录至IM系统530。在一个实施例中,指令在例如javascript文件等脚本文件中发送。浏览器进程520然后向IM系统530请求用户会话信息。会话信息请求包括用户标识符。IM系统530然后向浏览器进程520提供包括用户的网络消息通信程序状态的响应。响应可以包括诸如用户标识符和用户在IM系统530上的登录状态等数据。浏览器进程520然后向电子邮件系统532提供数据。电子邮件系统532然后由用户网络消息通信程序会话状态确定用户是否登录至IM系统530。
如果电子邮件系统532确定用户通过web IM服务器517登录,那么操作继续至步骤850,在那里向Web IM API做出调用以获得消息通信程序联系人的存在信息。在一个实施例中,如标号852所示,由浏览器进程520调用该API。电子邮件系统532可以在脚本文件中向浏览器进程520提供指令以检索消息通信程序联系人存在信息并将该信息返回至电子邮件系统532。联系人存在指示器然后可以在由电子邮件系统532提供的网络页面中提供。
如果在步骤840处,用户没有通过IM系统530登录,那么将不提供显示在界面页中的消息通信程序联系人的存在信息。在一个实施例中,由浏览器进程520从IM系统530接收的响应被发送至电子邮件系统532。
一旦检索到存在信息,web浏览器521向电子邮件系统532提供联系人存在信息。然后每一消息通信程序联系人的联系人存在指示器可以被结合到由电子邮件系统532提供的页面中。
当集成电子邮件服务和IM服务时,用户可能想要通过添加、删除或修改联系人来进行联系人变更。这可以包括将电子邮件列表中的联系人添加至消息通信程序联系人列表。图9示出了用于在集成的IM和电子邮件服务中进行联系人变更的方法900。方法900以步骤910开始,在那里web浏览器521从电子邮件系统532处装载添加消息通信程序联系人界面页面。下一步,在步骤920处,web浏览器521确定是否接收到选择消息通信程序联系人的输入。在一个实施例中,输入可以指示用户在网络页面210中标记联系人选择图标284。如果没有接收到合格的输入,那么操作继续至步骤930,在那里电子邮件系统532向web浏览器521提供电子邮件收件箱界面页面。可任选地,操作维持在步骤920处,直到接收到选择联系人的输入。如果在步骤920处选择了联系人,则电子邮件系统532确定用户是否登录至本地消息通信程序客户端或者基于浏览器的客户端。对此的过程类似与上文关于方法800描述的过程。如果用户或者登录至本地消息通信程序客户端或者Web IM客户端,那么在步骤950处将所选择的联系人保存至ABS 511和IM系统530。在一个实施例中,接收到来自用户的单个输入之后,可以将多个电子邮件联系人作为消息通信程序联系人保存。消息通信程序联系人通过用于访问IM系统530的客户机应用程序(即,本地消息通信程序客户端或者基于浏览器的客户端)来存储至IM系统530。在一个实施例中,消息通信程序联系人的变更由电子邮件系统532连同与该变更相关联的用户标识符一起发送给ABS 511。
如果用户没有登录至IM服务,那么在步骤960处将联系人添加至ABS 511。下一步,在步骤970处,IM服务确定用户是否拥有消息通信程序服务的帐户。在一个实施例中,该确定是通过向消息通信程序服务器发出调用并请求对与用户相关联的用户标识符的确认来作出的。如果消息通信程序服务器含有匹配该用户标识符的帐户,那么用户拥有IM系统530的帐户。如果没有找到帐户,那么操作继续至步骤980,在那里web浏览器520从电子邮件系统532中装载电子邮件发件箱界面。如果用户拥有IM系统530的帐户,那么操作继续至步骤990处,在那里电子邮件系统532提供电子邮件收件箱界面。然后在步骤995处,用户登录至Web IM客户端。
一旦用户配置了消息通信程序联系人列表,用户可以通过集成的IM和电子邮件系统发送即时消息。可以以若干方式启动即时消息,例如,点击“新的即时消息”按键或选择联系人列表或收件箱中的联系人存在指示器。图10示出了用于从集成的IM和电子邮件服务发送IM的方法1000的一个实施例。方法1000以步骤1010开始,在那里web浏览器521从电子邮件532中装载电子邮件界面页面。系统然后接收指示应该发送即时消息的输入。如果在步骤1020处输入是对“新IM”的选择,则操作继续至步骤1040。否则,用户已经选择了联系人存在指示器或与用户相关联的某个其它元素来启动向用户发送IM,且操作继续至步骤1030。电子邮件系统532然后在步骤1040处确定用户是否登录至本地IM系统530。如果用户登录至本地IM系统530,那么操作继续至步骤1042,在那里本地消息通信程序客户端主窗口被突出以选择消息通信程序联系人。如由标号1043所示,本地消息通信程序客户端执行标号1042的步骤。如果用户没有登录至本地消息通信程序客户端,那么在步骤1044处,IM系统确定用户是否通过基于浏览器的客户端(WebIM)登录至IM系统。如果用户登录至WebIM,那么操作继续至步骤1046,在那里对WebIM API做出调用以开启新的对话窗口。
如果在步骤1044处,电子邮件系统532确定用户没有登录至WebIM,那么在步骤1050处,电子邮件系统532确定WebIM延迟登录指示器是否为真。如上所述,电子邮件系统532访问与用户相关联的WebIM延迟登录指示器。如果在步骤1050处,电子邮件系统532确定WebIM延迟登录为真且消息通信程序联系人列表中不含有消息通信程序联系人,那么操作继续至步骤1052。在步骤1052处,电子邮件系统532在web浏览器512中装载提示用户指示他或她是否想要添加消息通信程序联系人的界面。在步骤1054处,如果web浏览器521接收到向消息通信程序联系人列表添加消息通信程序联系人的输入,那么将该输入发送到电子邮件系统532处,且在步骤1066处从电子邮件系统532向web浏览器521提供添加消息通信程序联系人界面。如果web浏览器521没有接收到向消息通信程序联系人列表添加消息通信程序联系人的请求,那么操作继续至步骤1064,在那里电子邮件系统532不再采取行动。
如果在步骤1050处,WebIM延迟指示器为假,那么电子邮件系统532确定用户拥有消息通信程序联系人但是用户没有登录到系统。操作继续至步骤1060,在那里电子邮件系统532确定用户是否应该登录至WebIM。在一个实施例中,电子邮件系统532提示用户确定用户是否想要登录。如果在步骤1060处,用户不应登录,那么操作继续至步骤1064处,在那里不再采取行动。如果在步骤1060处,用户应登录,那么操作继续至步骤1062,在那里用户通过WebIM登录到IM系统530。
返回至步骤1020,如果web浏览器没有接收到选择“新IM”的输入,那么浏览器接收到对联系人存在指示器的选择。这样,用户选择了与其对话的联系人。操作继续至步骤1032,在那里电子邮件系统532确定用户是否登录至本地消息通信程序客户端。如果用户登录至本地消息通信程序客户端,那么操作继续至步骤1034,在那里,接收者的电子邮件地址被传送给本地消息通信程序客户端API。本地消息通信程序然后将信息发送给IM系统530。IM系统530将作为用户和接收者之间的对话的代理。如果在步骤1032处用户没有登录至本地消息通信程序客户端,那么在步骤1036处系统确定用户是否登录至WebIM。如果用户登录至WebIM,那么在步骤1038处,所选接收者的电子邮件地址被传送给WebIM API。API接收该信息并向IM系统530发送对新对话的请求。如果用户没有登录至WebIM,那么操作继续至步骤1050,并如上继续前进。
可以通过由集成的电子邮件和IM服务提供的通知过程向用户通知新的电子邮件和IM请求。在一个实施例中,当由消息通信程序服务器为用户接收到新的电子邮件、即时消息以及其它数据时,生成警报。警报检索是由web IM服务器517执行的。因为web IM服务器517与最初接收该警报的IM系统530没有持续的通信,因此web IM服务器517轮询IM系统530以确定是否接收到警报。图11示出为数据传递事件提供即时消息警报的方法1100。
方法1100以在步骤1110处系统提供web电子邮件界面开始。如方法1100中所示,电子邮件系统532执行步骤1110、1120和1183。在某点处,WebIM客户端被装载,并运行在浏览器进程中。在步骤1125处,WebIM客户端或者浏览器进程轮询服务器以检查新的IM和电子邮件。轮询包括向消息通信程序服务器发送警报请求以及检查对关于接收到的警报的信息的响应。警报请求可以包括发送者的地址以及用户标识符。警报响应可以包含用户标识符、文本信息以及关于用户警报的其它信息。然后在步骤1130处,浏览器进程520确定所接收的任何响应是否包含对用户的新的警报。如果没有接收到警报,那么操作返回至步骤1125,在那里重复消息通信程序服务器轮询过程。如果来自IM系统530的响应中指示了警报,那么操作继续至步骤1140。
在步骤1140,浏览器进程520提供诸如吐司形块等关于新即时消息的可视指示器。在一个实施例中,吐司形块是指示为用户接收到警报的可视指示器。吐司形块可以采用若干形式,包括web浏览器521的一部分中生成的小窗口。吐司形块的一个示例在图3的元素380中示出。一旦提供了可视指示器,在步骤1150处,浏览器进程520确定是否接收到选择吐司形块的输入。如果由浏览器进程520接收到选择可视指示器的输入,那么操作继续至步骤1160。
在步骤1160处,系统确定该可视指示器是对于新电子邮件还是对于新即时消息。如果该可视指示器是对于新电子邮件的,那么在步骤1162处,电子邮件系统532在浏览器521中提供阅读电子邮件消息界面。这样,当选择可视指示器后,电子邮件系统532打开新邮件并通过web浏览器521向用户呈现内容。如果该可视指示器是对于即时消息的,那么在步骤1164处,浏览器进程提供新的即时消息对话窗口。该新窗口将被配置成用于与该即时消息发送者的对话。
如果在步骤1150处,浏览器进程520在一段时间内没有接收到选择可视指示器的输入,那么操作继续至步骤1170,在那里系统确定该可视指示器是对于IM还是对于电子邮件的。如果在步骤1170处,该可视指示器是对于即时消息的,那么在步骤1172处在当前窗口后方开启用于即时消息的对话窗口。可任选地,然后在步骤1174处,系统可以确定该新的窗口是否被弹出阻止器阻止。如果该新的窗口没有被阻止,那么操作继续至步骤1184处,在那里不采取行动。如果该窗口被弹出阻止器阻止,那么操作继续至步骤1176处,在那里系统通知用户出错,并允许用户请求更多信息。在一个实施例中,更多的信息可以包括通知用户如何关闭弹出阻止器。
如果在步骤1170处,可视指示器是对于新邮件的,那么操作继续至步骤1180处。在步骤1180处,web浏览器进程520确定当前是否使用收件箱界面装载web浏览器521。如果在步骤1180处,web浏览器521当前是使用收件箱界面装载的,那么在步骤1182处,浏览器进程520刷新收件箱。在一个实施例中,这是通过在步骤1182处向电子邮件系统532发送收件箱界面页面请求来完成的。如果在步骤1180处,当前没有显示收件箱界面,那么操作继续至步骤1184,在那里电子邮件系统532不再采取行动。
用户可以使用另一电子邮件或者即时消息来回复电子邮件。图12示出了用于使用即时消息回复电子邮件的方法1200。当在步骤1210处,web浏览器521接收到选择阅读邮件的输入时,方法1200开始。输入是提供给电子邮件系统532的,然后在步骤1220处,电子邮件系统532确定用户是通过本地消息通信程序客户端还是WebIM登录至IM系统530。方法800的步骤揭示了如何确定用户是通过本地消息通信程序客户端519还是WebIM(即浏览器进程)520来登录的。如果用户没有登录至本地消息通信程序客户端或WebIM,那么操作继续至步骤1235,在那里电子邮件系统532不提供带有即时回复链接的界面。
如果在步骤1220处,用户登录至IM系统530,那么操作继续至步骤1225处,在那里电子邮件系统确定要回复的电子邮件的发送者是否位于用户的消息通信程序联系人列表上。在一个实施例中,电子邮件系统532向ABS 511查询用户消息通信程序联系人列表。查询可以包括电子邮件接收者的用户标识符。在实施例中,仅在电子邮件系统532不含有消息通信程序联系人列表的本地高速缓存的副本的情况下才执行ABS查询。ABS 511检索消息通信程序联系人列表,并向电子邮件系统532发送该列表和用户标识符。电子邮件系统532然后确定电子邮件的发送者是否在消息通信程序联系人列表上列出。
在步骤1225处,如果电子邮件的发送者是用户的消息通信程序联系人,那么在步骤1230处电子邮件系统532确定发送者是否登录至IM系统530。在一个实施例中,电子邮件系统532启动会话请求来确定电子邮件的发送者是否登录至IM系统530。如果用户是通过本地消息通信程序客户端519登录的,那么web浏览器521发送会话请求。如果用户是通过web IM服务器517登录的,那么浏览器进程520发送会话请求。请求的结果被返回给电子邮件系统532。
如果发送者没有登录,那么操作继续至步骤1235,且不在由电子邮件系统532提供的阅读电子邮件界面页上提供即时回复链接。如果发送者登录至IM系统530,那么操作继续至步骤1260处,在那里阅读电子邮件界面包括即时回复链接。具有即时回复链接的阅读邮件界面的示例在图4A中示出。在步骤1262处,当web浏览器521接收到选择即时回复链接的输入时,方法1100的操作将如在图10的方法1000中更详细讨论的发送IM。
如果在步骤1225处,电子邮件系统532确定发送者不位于用户消息通信程序联系人列表上,那么操作继续至步骤1240处,在那里电子邮件系统532在阅读邮件界面中提供了即时回复按键。在一个实施例中,即时回复按键是与步骤1260的按键不同地表示的,且访问稍有不同的功能。在另一个实施例中,在步骤1240之前,系统确定电子邮件的发送者是否与指示发送者在电子邮件和IM服务域内有帐户的标识符相关联。在一个实施例中,如果发送者拥有包括域指示的电子邮件,那么他或她能够访问该域。域可以包括拥有在“”字符后包含相同部分的电子邮件的联系人。例如,在收件箱内容280中列出的所有发送者都拥有相同的“network”且能够访问相同的域。如果发送者不能访问域,那么操作继续至步骤1225,在那里不在阅读电子邮件界面中提供即时回复选项。如果用户能够访问域,那么操作继续至步骤1244,在那里电子邮件系统532在阅读电子邮件界面中提供即时回复按键。如标号1256所示,步骤1244、1246、1250和1255是由浏览器进程执行的。
在步骤1242处,当用户在步骤1242处选择即时回复链接时,在步骤1244处,系统提示用户邀请接收者至对话。如果web浏览器521接收指示用户邀请接收者至对话的输入,那么在步骤1255处,系统向发送者发送作为电子邮件的IM邀请,请求他或她加入用户的消息通信程序联系人列表。在一个实施例中,电子邮件包括到对话窗口的URL。如果系统没有接收到指示用户邀请接收者至对话的输入,那么不采取行动且操作在步骤1250处结束。
用户可能想要发送带有附件的电子邮件。本系统会自动检测附件并向用户给出使用IM系统530而非电子邮件系统来将附件发送给接收者的选项。用户可以选择通过IM服务即时发送电子邮件的附件。图13示出了用于通过IM系统530向电子邮件接收者发送电子邮件附件的方法1300。web浏览器521向电子邮件系统532发送电子邮件消息。在步骤1310处,电子邮件系统532接收该请求并发送电子邮件。在步骤1320处,电子邮件系统532确定该电子邮件请求是否包括附加文件。如果该电子邮件不带有附加文件,那么在步骤1330处,该电子邮件作为正常的来处理,以供电子邮件系统532路由。
如果该电子邮件包括附件,那么操作继续至步骤1340处,在那里电子邮件系统532通过web浏览器521向用户提供界面页面,询问用户是否想要通过即时消息发送附件。web浏览器521在询问页面上从用户处接收输入,并将输入转发给电子邮件系统532。然后在步骤1350处,电子邮件系统532确定文件是应该被附加还是通过即时消息发送。如果用户指示附件不应被即时发送,那么操作继续至步骤1330。如果用户指示附件应该使用即时消息来发送,那么操作继续至步骤1360,在那里系统确定用户是否登录至IM系统530。步骤1360可以根据方法800执行。
如果用户登录至IM系统530,那么操作继续至步骤1380。如果用户当前没有登录至IM系统530,那么在步骤1370处,系统通过web IM服务器517或本地消息通信程序客户端将用户登录至IM系统530。操作然后继续至步骤1380处,在那里,对电子邮件附件调用本地消息通信程序客户端519或web IM服务器517上的API。然后在步骤1390处,本地消息通信程序客户端519或web IM服务器517向接收者发送附件。
本发明的以上详细描述是为说明和描述目的而提供的。它不旨在是穷尽的或是将本发明限于所揭示的精确形式。鉴于上述教导,可以有众多修改或变化。选择所描述的实施例以最好地解释本发明的原理及其实际应用,从而使得本领域的其它技术人员能够在各个实施例中以及使用适于所构想的特定用途的各种修改来利用本发明。本发明的范围旨在由所附权利要求书来定义。