CN111095877B - 一种电子邮件的同步方法及终端 - Google Patents
一种电子邮件的同步方法及终端 Download PDFInfo
- Publication number
- CN111095877B CN111095877B CN201780094850.4A CN201780094850A CN111095877B CN 111095877 B CN111095877 B CN 111095877B CN 201780094850 A CN201780094850 A CN 201780094850A CN 111095877 B CN111095877 B CN 111095877B
- Authority
- CN
- China
- Prior art keywords
- server
- identifier
- identification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/226—Delivery according to priorities
Abstract
本申请实施例提供一种电子邮件的同步方法及终端,涉及通信技术领域,可以降低Email客户端的资源负载,同时提供Email客户端收发电子邮件的效率。具体方案包括:电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,该第一标识是山水过户电子邮件客户端为所述第一邮件分配的,用于唯一标识该第一邮件的邮件标识;当上述第一服务器中已保存上述第一邮件时,该电子邮件客户端不向上述第一服务器发送第一邮件;当上述第一服务器中未保存所述第一邮件时,该电子邮件客户端向上述第一服务器发送第一邮件,该第一邮件中携带上述第一标识。
Description
本申请要求于2017年10月09日提交中国专利局、申请号为201710931815.5、申请名称为“一种邮件同步方法及终端”的中国专利申请的优先权,其全部内容通过引用结合在本申请实施例中。
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种电子邮件的同步方法及终端。
背景技术
随着网络技术的发展,电子邮件等网络通信工具的使用越来越频繁,通过电子邮箱(如Foxmail、Outlook等)发送或接收的邮件也越来越多。其中,用户可以使用不同终端中的电子邮箱客户端(即Email客户端)登录同一邮箱地址。当用户使用不同终端登录同一邮箱地址时,已发送邮件的同步则尤为重要。
其中,Email客户端可以通过交互式邮件存取协议(Internet Mail AccessProtocol,IMAP)服务器,实现已发送邮件的同步。具体的,Email客户端在成功发送邮件后,可以向IMAP服务器上传该邮件,IMAP服务器保存该邮件,以便电子邮箱的邮件同步时间到达后,Email客户端可以从IMAP服务器下载该邮件。
但是,IMAP服务器在上述邮件的发送过程中,可以为Email客户端转发该邮件,而IMAP服务器可能会根据其配置信息的指示,保存转发的邮件。如此,IMAP服务器中则保存两封上述邮件(邮件转发过程中保存的邮件和从客户端接收的邮件)。那么,Email客户端则可以从IMAP服务器下载两封上述邮件,Email客户端的已发送邮件列表中则可以显示相同的两封邮件,增加了Email客户端的资源负载,同时也降低了Email客户端收发电子邮件的效率。
发明内容
本申请提供一种电子邮件的同步方法及终端,可以降低Email客户端的资源负载,同时提供Email客户端收发电子邮件的效率。
第一方面,本申请提供一种电子邮件的同步方法,该电子邮件的同步方法应用于电子邮箱客户端(即Email客户端),该电子邮件的同步方法包括:电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,该第一标识是上述电子邮件客户端为该第一邮件分配的,用于唯一标识该第一邮件的邮件标识;当上述第一服务器中已保存上述第一邮件时,该电子邮件客户端不向上述第一服务器发送携带第一标识的第一邮件;当上述第一服务器中未保存该第一邮件时,上述电子邮件客户端向第一服务器发送携带第一标识的第一邮件。
其中,由于第一邮件中携带第一标识,该第一标识可以用于唯一标识该第一邮件;并且,Email客户端在向第一服务器上传邮件时,可以根据该第一邮件的第一标识,先确定第一服务器是否已经保存了该邮件;当第一服务器已保存该邮件时,不向第一服务器上传该邮件;当第一服务器未保存该邮件时,才向第一服务器上传该邮件。如此,第一服务器中则只保存一封该邮件,Email客户端进行邮件同步时,则不会下载多封相同邮件,可以减少Email客户端的资源负载,提高Email客户端收发电子邮件的效率。并且,Email客户端进行邮件同步时则不会下载多封相同邮件,因此不会显示多封相同的邮件,可以提高用户体验。
在一种可能的设计方法中,Email客户端可以通过向第一服务器发送用户身份证明(User Identification,UID)查询命令的方式,指示第一服务器查询邮件标识与第一标识相同的邮件的UID,根据查询结果判断第一服务器中是否已保存第一邮件。上述电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,包括:电子邮件客户端向上述第一服务器发送UID查询命令,该UID查询命令中携带有上述第一标识,该UID查询命令用于查询邮件标识与上述第一标识相同的邮件的UID;上述电子邮件客户端接收上述第一服务器发送的第一UID查询响应或者第二UID查询响应。其中,该第一UID查询响应用于指示上述第一服务器中已保存上述第一邮件,该第二UID查询响应用于指示上述第一服务器中未保存上述第一邮件;上述电子邮件客户端根据该第一UID查询响应确定上述第一服务器中已保存上述第一邮件,或者根据上述第二UID查询响应确定上述第一服务器中未保存上述第一邮件。
本申请实施例中,Email客户端可以通过向第一服务器发送UID查询命令的方式,指示第一服务器查询邮件标识与第一标识相同的邮件的UID,以判断第一服务器中是否保存第一邮件。
其中,本申请实施例提供两种格式的UID查询命令。第一种格式的UID查询命令为:UID SEARCH HEADER MID<*@email.android.com>。第二种格式的UID查询命令为:UIDSEARCH(HEADER MID<*@email.android.com>)。其中,<>中的内容“*@email.android.com”是本申请给出的一种邮件标识(Message Identification,MID)的实例。
可以理解,当Email客户端知道第一服务器所支持的UID查询命令的格式时,该Email客户端可以在上述两种格式的UID查询命令中,选择性的向第一服务器发送IMAP服务器支持的UID查询命令。当Email客户端不知道第一服务器所支持的UID查询命令的格式时,该Email客户端则可以先发送第一种格式的UID查询命令,以指示第一服务器查询邮件标识与第一标识相同的邮件的UID。如果Email客户端接收到第一服务器发送的第二UID查询命令,则表示该第一服务器未保存第一邮件,或者该第一服务器不支持采用第一种格式的UID查询命令,查找邮件的UID。此时,Email客户端则可以继续向第一服务器发送第二种格式的UID查询命令,以指示第一服务器查询邮件标识与第一标识相同的邮件的UID。如果Email客户端接收到第一服务器发送的第二UID查询命令,则可以认为该第一服务器未保存上述第一邮件。
可选的,Email客户端也可以先发送第一种格式的UID查询命令,然后在接收到第一服务器发送的第二UID查询命令后,再发送第二种格式的UID查询命令,本申请实施例对第一种格式的UID查询命令和第二种格式的UID查询命令的发送先后顺序不作限制。
本申请实施例中,Email客户端可以向第一服务器发送一种格式的UID查询命令(如第二种格式的UID查询命令)后,如果接收到第二UID查询命令,则可以继续向第一服务器发送另一种格式的UID查询命令(如第一种格式的UID查询命令),以判断第一服务器中是否保存第一邮件。这样,可以避免由于第一服务器不支持采用第一次发送的UID查询命令查询UID,导致查询失败的问题,可以提高Email客户端获得的判断结果的准确性。
在另一种可能的设计方法中,上述第一服务器可能不支持采用上述两种格式的UID查询命令查询UID;或者,第一服务器可能不支持根据邮件的MID查询邮件的UID。在这种情况下,如果电子邮件客户端接收上述第一服务器发送的上述第二UID查询响应,电子邮件客户端则可以向上述第一服务器发送标识查询请求,该标识查询请求用于获取上述第一服务器保存的N个第二邮件的邮件标识,该N个第二邮件是上述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;该电子邮件客户端接收上述第一服务器发送的标识查询响应,该标识查询响应中携带有上述N个第二邮件的邮件标识;该电子邮件客户端依次遍历上述N个第二邮件,查找邮件标识与上述第一标识相同的邮件;如果查找到上述邮件标识与上述第一标识相同的邮件,上述电子邮件客户端确定上述第一服务器中已保存上述第一邮件;如果未查找到上述邮件标识与上述第一标识相同的邮件,上述电子邮件客户端确定上述第一服务器中未保存上述第一邮件。其中,本申请实施例将这种可能的设计方法中的查询方式称为循环遍历查询方式。
其中,上述电子邮件客户端依次遍历所述N个第二邮件的邮件标识,查找所述邮件标识与所述第一标识相同的邮件的方法可以包括:(a)电子邮件客户端为循环计数器的计数值i赋值,i=N-1;(b)电子邮件客户端判断循环计数器的计数值i是否大于或者等于0;当循环计数器的计数值i大于或者等于0时,继续执行(c);当环计数器的计数值i小于0时,则向第一服务器发送第一邮件;(c)判断第i+1个第二邮件的邮件标识与第一标识是否相同,第i+1个第二邮件是上述N个第二邮件中,按照邮件保存时间的先后顺序排列在第i+1位的邮件;当第i+1个第二邮件的邮件标识与第一标识相同时,终端不向IMAP服务器发送第一邮件;当第i+1个第二邮件的邮件标识与第一标识不同时,继续执行(d);(d)循环计数器的计数值i--,并继续执行步骤(b)。
本申请实施例中,即使第一服务器不支持采用上述两种格式的UID查询命令查询UID。或者,第一服务器不支持根据邮件的MID查询邮件的UID;Email客户端也可以采用上述循环遍历查询方式,判断第一服务器中是否保存第一邮件。这样,可以避免由于第一服务器不支持采用上述两种格式的UID查询命令查询UID,或者第一服务器不支持根据邮件的MID查询邮件的UID,导致查询失败的问题,可以提高Email客户端获得的判断结果的准确性。
在另一种可能的设计方法中,上述电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,包括:电子邮件客户端向上述第一服务器发送标识查询请求,该标识查询请求用于获取上述第一服务器保存的N个第二邮件的邮件标识,该N个第二邮件是上述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;该电子邮件客户端接收上述第一服务器发送的标识查询响应,该标识查询响应中携带有上述N个第二邮件的邮件标识;该电子邮件客户端依次遍历上述N个第二邮件,查找邮件标识与上述第一标识相同的邮件;如果查找到上述邮件标识与上述第一标识相同的邮件,上述电子邮件客户端确定上述第一服务器中已保存上述第一邮件;如果未查找到上述邮件标识与上述第一标识相同的邮件,上述电子邮件客户端确定上述第一服务器中未保存上述第一邮件。其中,本申请实施例将这种可能的设计方法中的查询方式称为循环遍历查询方式。
其中,即使第一服务器不支持采用上述两种格式的UID查询命令查询UID,或者第一服务器不支持根据邮件的MID查询邮件的UID,Email客户端也可以采用上述循环遍历查询方式,判断第一服务器中是否保存第一邮件。这样,可以提高Email客户端获得的判断结果的准确性。
在另一种可能的设计方法中,在上述电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件之前,本申请实施例的方法还可以包括:电子邮件客户端向第二服务器发送携带所述第一标识的所述第一邮件。其中,所述第一服务器中已保存的第一邮件是所述第二服务器向所述第一服务器发送的。
在另一种可能的设计方法中,上述第一标识是所述电子邮件客户端在创建所述第一邮件时,为所述第一邮件分配的;或者,所述第一标识是所述电子邮件客户端在发送所述第一邮件时,为所述第一邮件分配的。
即Email客户端可以在创建第一邮件时,为该第一邮件分配可以唯一标识该第一邮件的第一标识;或者Email客户端可以在发送第一邮件时,为该第一邮件分配、可以唯一标识该第一邮件的第一标识。
在另一种可能的设计方法中,上述电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,包括:该电子邮件客户端在接收到上述第一服务器发送的第一消息时,根据上述第一标识,确定上述第一服务器中是否保存上述第一邮件,上述第一消息用于指示上述第一邮件发送成功;或者,上述电子邮件客户端在向上述第一服务器发送上述第一邮件之前,根据上述第一标识,确定上述第一服务器中是否保存上述第一邮件。
第二方面,本申请提供一种电子邮箱客户端,该电子邮箱客户端包括:确定单元、控制单元和发送单元。上述确定单元,用于根据第一标识,确定第一服务器中是否保存第一邮件,上述第一标识是上述电子邮件客户端为上述第一邮件分配的,用于唯一标识上述第一邮件的邮件标识;上述控制单元,用于当上述确定单元确定上述第一服务器中已保存上述第一邮件时,指示上述发送单元不向上述第一服务器发送上述第一邮件,上述第一邮件中携带上述第一标识;当上述确定单元确定上述第一服务器中未保存上述第一邮件时,指示上述发送单元向上述第一服务器发送上述第一邮件,上述第一邮件中携带上述第一标识。
在一种可能的设计方法中,上述确定单元,具体用于向上述第一服务器发送用户身份标识UID查询命令,上述UID查询命令中携带有上述第一标识,上述UID查询命令用于查询邮件标识与上述第一标识相同的邮件的UID;接收上述第一服务器发送的第一UID查询响应或者第二UID查询响应,上述第一UID查询响应用于指示上述第一服务器中已保存上述第一邮件,上述第二UID查询响应用于指示上述第一服务器中未保存上述第一邮件;根据上述第一UID查询响应确定上述第一服务器中已保存上述第一邮件,或者根据上述第二UID查询响应确定上述第一服务器中未保存上述第一邮件。
在另一种可能的设计方法中,确定单元,还用于在接收上述第一服务器发送的上述第二UID查询响应之后,向上述第一服务器发送标识查询请求,上述标识查询请求用于获取上述第一服务器保存的N个第二邮件的邮件标识,上述N个第二邮件是上述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1。上述确定单元,还用于接收上述第一服务器发送的标识查询响应,上述标识查询响应中携带有上述N个第二邮件的邮件标识。上述确定单元,还用于依次遍历上述N个第二邮件,查找上述邮件标识与上述第一标识相同的邮件如果查找到上述邮件标识与上述第一标识相同的邮件,确定上述第一服务器中已保存上述第一邮件;如果未查找到上述邮件标识与上述第一标识相同的邮件,确定上述第一服务器中未保存上述第一邮件。
在另一种可能的设计方法中,上述确定单元,具体用于向上述第一服务器发送标识查询请求,上述标识查询请求用于获取上述第一服务器保存的N个第二邮件的邮件标识,上述N个第二邮件是上述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;接收上述第一服务器发送的标识查询响应,上述标识查询响应中携带有上述N个第二邮件的邮件标识;依次遍历上述N个第二邮件的邮件标识,查找上述邮件标识与上述第一标识相同的邮件;如果查找到上述邮件标识与上述第一标识相同的邮件,确定上述第一服务器中已保存上述第一邮件;如果未查找到上述邮件标识与上述第一标识相同的邮件,确定上述第一服务器中未保存上述第一邮件。
在另一种可能的设计方法中,上述发送单元,还用于在上述确定单元根据第一标识,确定第一服务器中是否保存第一邮件之前,向第二服务器发送携带上述第一标识的上述第一邮件。其中,上述第一服务器中已保存的第一邮件是上述第二服务器向上述第一服务器发送的。
在另一种可能的设计方法中,上述电子邮箱客户端还包括:分配单元。该分配单元,用于在创建上述第一邮件时,为上述第一邮件分配上述第一标识,或者在上述发送单元发送上述第一邮件时,为上述第一邮件分配上述第一标识。
在另一种可能的设计方法中,上述电子邮箱客户端还包括:接收单元。该接收单元,用于接收到上述第一服务器发送的第一消息,上述第一消息用于指示上述第一邮件发送成功;上述确定单元,具体用于:在上述接收单元接收到上述第一服务器发送的第一消息时,根据上述第一标识,确定上述第一服务器中是否保存上述第一邮件。或者,上述确定单元,具体用于:在上述发送单元向上述第一服务器发送上述第一邮件之前,根据上述第一标识,确定上述第一服务器中是否保存上述第一邮件。
第三方面,本申请提供一种终端,该终端中安装有电子邮箱客户端,该终端包括:处理器、存储器、收发器和显示器;存储器、显示器、收发器与处理器耦合,存储器用于存储计算机程序代码以及电子邮箱客户端的相关数据,显示器用于显示电子邮箱客户端的界面,计算机程序代码包括计算机指令,当处理器执行计算机指令时,处理器,用于根据第一标识,确定第一服务器中是否保存第一邮件,第一标识是电子邮件客户端为第一邮件分配的,用于唯一标识第一邮件的邮件标识;收发器,还用于当处理器确定第一服务器中已保存第一邮件时,不向第一服务器发送第一邮件,第一邮件中携带第一标识;收发器,还用于当处理器确定第一服务器中未保存第一邮件时,向第一服务器发送第一邮件,第一邮件中携带第一标识。
在一种可能的设计方法中,上述收发器,还用于向第一服务器发送UID查询命令,UID查询命令中携带有第一标识,UID查询命令用于查询邮件标识与第一标识相同的邮件的UID;收发器,还用于接收第一服务器发送的第一UID查询响应或者第二UID查询响应,第一UID查询响应用于指示第一服务器中已保存第一邮件,第二UID查询响应用于指示第一服务器中未保存第一邮件;处理器,还用于根据收发器接收的第一UID查询响应确定第一服务器中已保存第一邮件,或者根据收发器接收的第二UID查询响应确定第一服务器中未保存第一邮件。
在另一种可能的设计方法中,收发器,还用于在接收第一服务器发送的第二UID查询响应之后,向第一服务器发送标识查询请求,标识查询请求用于获取第一服务器保存的N个第二邮件的邮件标识,N个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;接收第一服务器发送的标识查询响应,标识查询响应中携带有N个第二邮件的邮件标识;处理器,还用于依次遍历N个第二邮件,查找邮件标识与第一标识相同的邮件;如果查找到邮件标识与第一标识相同的邮件,确定第一服务器中已保存第一邮件;如果未查找到邮件标识与第一标识相同的邮件,确定第一服务器中未保存第一邮件。
在另一种可能的设计方法中,收发器,还用于向第一服务器发送标识查询请求,标识查询请求用于获取第一服务器保存的N个第二邮件的邮件标识,N个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;接收第一服务器发送的标识查询响应,标识查询响应中携带有N个第二邮件的邮件标识;处理器,还用于依次遍历N个第二邮件的邮件标识,查找邮件标识与第一标识相同的邮件;如果查找到邮件标识与第一标识相同的邮件,确定第一服务器中已保存第一邮件;如果未查找到邮件标识与第一标识相同的邮件,确定第一服务器中未保存第一邮件。
在另一种可能的设计方法中,收发器,还用于在处理器根据第一标识,确定第一服务器中是否保存第一邮件之前,向第二服务器发送携带第一标识的第一邮件;其中,第一服务器中已保存的第一邮件是第二服务器向第一服务器发送的。
在另一种可能的设计方法中,第一标识是电子邮件客户端在创建第一邮件时,为第一邮件分配的;或者,第一标识是电子邮件客户端在发送第一邮件时,为第一邮件分配的。
在另一种可能的设计方法中,处理器,还用于:在收发器接收到第一服务器发送的第一消息时,根据第一标识,确定第一服务器中是否保存第一邮件,第一消息用于指示第一邮件发送成功;或者,在收发器向第一服务器发送第一邮件之前,根据第一标识,确定第一服务器中是否保存第一邮件。
可以理解,上述提供的第二方面的电子邮箱客户端、第三方面的终端、均用于执行第一方面及其可能的设计方法所提供的对应的方法,因此,其所能达到的有益效果可参考第一方面及其可能的设计方法中的有益效果,此处不再赘述。
第四方面,本申请提供一种电子邮件的同步方法,该方法用于进行电子邮箱客户端中的邮件同步,该方法包括:电子邮箱客户端向第一服务器发送UID查询命令,UID查询命令中携带有第一标识,第一标识是电子邮件客户端为第一邮件分配的,用于唯一标识第一邮件的邮件标识,UID查询命令用于查询邮件标识与第一标识相同的邮件的UID;第一服务器响应于UID查询命令,从第一服务器保存的邮件中,查找邮件标识与第一标识相同的邮件的UID;第一服务器根据查询结果,向电子邮件客户端发送第一UID查询响应或者第二UID查询响应,第一UID查询响应中携带查找到的邮件的UID,第二UID查询响应用于指示第一服务器中未保存第一邮件;电子邮件客户端根据第一UID查询响应确定第一服务器中已保存第一邮件,或者根据第二UID查询响应确定第一服务器中未保存第一邮件。
在一种可能的设计方法中,第一服务器响应于UID查询命令,从第一服务器保存的邮件中,查找邮件标识与第一标识相同的邮件的UID,包括:第一服务器响应于UID查询命令,从第一服务器保存的M个第二邮件中,查找邮件标识与第一标识相同的邮件的UID,M≥1;其中,M个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后M位的邮件。
在另一种可能的设计方法中,本申请的方法还包括:当第一服务器无法识别UID查询命令时,第一服务器向电子邮件客户端发送第二UID查询响应。
在另一种可能的设计方法中,本申请的方法还包括:电子邮箱客户端在接收到第一服务器发送的第二UID查询响应后,向第一服务器发送标识查询请求,标识查询请求用于获取第一服务器保存的N个第二邮件的邮件标识,N个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;第一服务器响应于标识查询请求,向电子邮件客户端发送标识查询响应,标识查询响应中携带有N个第二邮件的邮件标识;电子邮件客户端响应于标识查询响应,依次遍历N个第二邮件,查找邮件标识与第一标识相同的邮件;如果查找到邮件标识与第一标识相同的邮件,电子邮件客户端确定第一服务器中已保存第一邮件;如果未查找到邮件标识与第一标识相同的邮件,电子邮件客户端确定第一服务器中未保存第一邮件。
第五方面,本申请提供一种电子邮件的同步系统,用于进行电子邮箱客户端中的邮件同步,该系统包括:电子邮箱客户端和第一服务器。电子邮箱客户端,用于向第一服务器发送用户身份标识UID查询命令,UID查询命令中携带有第一标识,第一标识是电子邮件客户端为第一邮件分配的,用于唯一标识第一邮件的邮件标识,UID查询命令用于查询邮件标识与第一标识相同的邮件的UID;第一服务器,用于响应于UID查询命令,从第一服务器保存的邮件中,查找邮件标识与第一标识相同的邮件的UID;根据查询结果,向电子邮件客户端发送第一UID查询响应或者第二UID查询响应,第一UID查询响应中携带查找到的邮件的UID,第二UID查询响应用于指示第一服务器中未保存第一邮件;电子邮件客户端,还用于根据第一UID查询响应确定第一服务器中已保存第一邮件,或者根据第二UID查询响应确定第一服务器中未保存第一邮件。
在一种可能的设计方法中,上述第一服务器,还用于响应于UID查询命令,从第一服务器保存的M个第二邮件中,查找邮件标识与第一标识相同的邮件的UID,M≥1;其中,M个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后M位的邮件。
在另一种可能的设计方法中,上述第一服务器,还用于当第一服务器无法识别UID查询命令时,向电子邮件客户端发送第二UID查询响应。
在另一种可能的设计方法中,上述电子邮箱客户端,还用于在接收到第一服务器发送的第二UID查询响应后,向第一服务器发送标识查询请求,标识查询请求用于获取第一服务器保存的N个第二邮件的邮件标识,N个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;第一服务器,还用于响应于标识查询请求,向电子邮件客户端发送标识查询响应,标识查询响应中携带有N个第二邮件的邮件标识;电子邮件客户端,还用于响应于标识查询响应,依次遍历N个第二邮件,查找邮件标识与第一标识相同的邮件;如果查找到邮件标识与第一标识相同的邮件,确定第一服务器中已保存第一邮件;如果未查找到邮件标识与第一标识相同的邮件,确定第一服务器中未保存第一邮件。
第六方面,本申请提供一种电子邮件的同步方法,用于进行电子邮箱客户端中的邮件同步,该方法包括:电子邮箱客户端向第一服务器发送标识查询请求,标识查询请求用于获取第一服务器保存的N个第二邮件的邮件标识,N个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;第一服务器响应于标识查询请求,向电子邮件客户端发送标识查询响应,标识查询响应中携带有N个第二邮件的邮件标识;电子邮件客户端响应于标识查询响应,依次遍历N个第二邮件,查找邮件标识与第一标识相同的邮件;如果查找到邮件标识与第一标识相同的邮件,电子邮件客户端确定第一服务器中已保存第一邮件;如果未查找到邮件标识与第一标识相同的邮件,电子邮件客户端确定第一服务器中未保存第一邮件。
第七方面,本申请提供一种电子邮件的同步系统,用于进行电子邮箱客户端中的邮件同步,该系统包括:电子邮箱客户端,用于向第一服务器发送标识查询请求,标识查询请求用于获取第一服务器保存的N个第二邮件的邮件标识,N个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;第一服务器,用于响应于标识查询请求,向电子邮件客户端发送标识查询响应,标识查询响应中携带有N个第二邮件的邮件标识;电子邮件客户端,还用于响应于标识查询响应,依次遍历N个第二邮件,查找邮件标识与第一标识相同的邮件;如果查找到邮件标识与第一标识相同的邮件,确定第一服务器中已保存第一邮件;如果未查找到邮件标识与第一标识相同的邮件,确定第一服务器中未保存第一邮件。
第八方面,本申请提供一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行如第一方面、第四方面和第六方面及其可能的设计方法中,电子邮箱客户端执行的电子邮件的同步方法。
第九方面,本申请提供一种计算机程序产品,当计算机程序产品在终端上运行时,使得终端执行如第一方面、第四方面和第六方面及其可能的设计方法中,电子邮箱客户端执行的电子邮件的同步方法。
可以理解地,上述提供的第八方面所述的计算机存储介质,以及第第九方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请一实施例提供的一种电子邮件的同步方法所应用的网络架构实例示意图;
图2为本申请另一实施例提供的一种电子邮件的同步方法所应用的网络架构实例示意图;
图3为本申请一实施例提供的一种电子邮件的同步方法的流程图;
图4为本申请另一实施例提供的一种手机的电子邮箱的显示界面实例示意图;
图5为本申请另一实施例提供的一种终端的硬件结构示意图;
图6为本申请另一实施例提供的一种电子邮件的同步方法的流程图;
图7A为本申请另一实施例提供的一种手机的电子邮箱的显示界面实例示意图;
图7B为本申请另一实施例提供的一种电子邮件的同步方法所应用的网络架构实例示意图;
图8A为本申请另一实施例提供的一种电子邮件的同步方法所应用的网络架构实例示意图;
图8B为本申请另一实施例提供的一种手机的电子邮箱的显示界面实例示意图;
图9为本申请另一实施例提供的一种手机的电子邮箱的显示界面实例示意图;
图10为本申请另一实施例提供的一种电子邮件的同步方法的流程图;
图11为本申请另一实施例提供的一种电子邮件的同步方法的流程图;
图12为本申请另一实施例提供的一种电子邮件的同步方法的流程图;
图13为本申请另一实施例提供的一种电子邮件的同步方法的流程图;
图14为本申请另一实施例提供的一种电子邮件的同步方法的流程图;
图15为本申请另一实施例提供的一种Email客户端的结构组成示意图一;
图16为本申请另一实施例提供的一种Email客户端的结构组成示意图二。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两封或两封以上。
本申请实施例提供的一种电子邮件的同步方法及终端,该终端中安装有Email客户端,该电子邮件的同步方法可以应用于Email客户端发送电子邮件后,向服务器同步电子邮件的过程中。其中,本申请实施例中的Email客户端指电子邮箱客户端。
请参考图1,其示出了本申请一实施例提供的一种邮件传输系统10的网络架构。如图1所示,该邮件传输系统10可以包括:至少两个Email客户端(如Email客户端101和Email客户端102)和一个或多个邮件服务器103。其中,图1中以邮件传输系统10包括一个邮件服务器103为例,对邮件传输系统10进行举例说明。
其中,本申请实施例中的Email客户端主要用于收发邮件。本申请实施例中的Email客户端可以是使用IMAP、认证邮局协议(Authentication Post Office Protocol,APOP)、邮局协议版本3(Post Office Protocol Version 3,POP3)、简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)或者扩展的SMTP(Extended SMTP,ESMTP)等协议中的任一协议收发电子邮件的软件。
电子邮箱地址的格式可以为:用户名@域名,例如Steven@outlook.com。其中,用户名为电子邮箱的用户在注册电子邮箱时,为其电子邮箱设置的区别于同一域名的其他电子邮箱的标识,域名为不同类电子邮箱的标识。本申请实施例中的Email客户端可以是嵌入式应用程序(即终端的系统应用)的客户端或者可下载应用程序的客户端。其中,嵌入式应用程序是作为终端(如图4或图5中的手机400)实现的一部分提供的应用程序。可下载应用程序是一个可以提供自己的因特网协议多媒体子系统(Internet Protocol MultimediaSubsystem,IMS)连接的应用程序,该可下载应用程序可以预先安装在终端中的应用或可以由用户下载并安装在终端中的第三方应用。
本申请实施例中的Email客户端(如Email客户端101和Email客户端102)安装在终端中,该终端可以是个人计算机(Personal Computer,PC)、手机(如图4或图5中的手机400)、平板电脑、便携式计算机等可以安装电子邮箱的电子设备。需要说明的是,本申请实施例中的邮件如无特别说明均指电子邮件。
本申请实施例中的邮件服务器是一种用于负责邮件收发管理的设备。图1所示的邮件服务器103用于为Email客户端101和Email客户端102传输邮件。例如,在Email客户端101和Email客户端102进行邮件传输的过程中,至少一个邮件服务器103可以接收Email客户端101发送的邮件,并向Email客户端102发送其接收到的邮件。
可以理解,当上述Email客户端101的邮箱地址的域名和Email客户端102的邮箱地址的域名相同时,如Email客户端101和Email客户端102的邮箱地址的域名均为“outlook.com”时,图1所示的邮件传输系统10中可以包括一个邮件服务器。当上述Email客户端101的邮箱地址的域名和Email客户端102的邮箱地址的域名不同时,如Email客户端101的邮箱地址的域名为“163.com”,而Email客户端102的邮箱地址的域名为“outlook.com”,图1所示的邮件传输系统10中可以包括至少两个邮件服务器(如163邮件服务器和outlook邮件服务器)。
示例性的,如图2所示,假设图1所示的Email客户端101是爱丽丝(Alice)的Email客户端,其邮箱地址为Alice@a.org;图1所示的Email客户端102是鲍勃(Bob)的Email客户端,其邮箱地址为Bob@b.org。本申请实施例以Email客户端101向Email客户端102发送邮件a为例,对邮件的传输过程进行示例性说明。
其中,由于Email客户端101的邮箱地址的域名“a.org”与Email客户端102的邮箱地址的域名“b.org”不同;因此,如图2所示,图1所示的邮件传输系统10可以包括邮件服务器1031和邮件服务器1032。其中,邮件服务器1031是Email客户端101的互联网服务供应商提供的用于负责邮件收发管理的设备,邮件服务器1032是由Email客户端102的互联网服务供应商提供的用于负责邮件收发管理的设备。
Email客户端101可以利用邮件传输协议,如RFC(Request For Comments)5321协议,向邮件服务器1031发送Email客户端101中的邮件a。邮件服务器1031接收到邮件a后,确定邮件a的目的地址(如Bob@b.org),并获取该目的地址中的域名(如“b.org”),然后将获取的域名转化为域名系统(Domain Name System,DNS)中邮件服务器的完整域名。例如,域名“b.org”的完整域名可以是“mx.b.org”。随后,邮件服务器1031可以向转换得到的完整域名“mx.b.org”对应的邮件服务器1032发送上述邮件a,由邮件服务器1032向邮箱地址为Bob@b.org的Email客户端102发送邮件a。其中,邮件服务器1031可以利用SMTP协议向邮件服务器1032发送邮件a。
例如,图2所示的邮件服务器1031可以包括本申请实施例中的第一服务器和第二服务器。本申请实施例中的第一服务器可以是图3所示的IMAP服务器,第二服务器可以是图3所示的SMTP服务器。或者,本申请实施例中的第一服务器和第二服务器可以是同一服务器,该服务器集成了IMAP服务器和SMTP服务器的所有功能。又或者,本申请实施例中的第一服务器和第二服务器还可以是其他的邮件服务器,本申请这里对此不作限制。
以下参考图3,对Email客户端101发送邮件,以及向邮件服务器同步电子邮件的过程进行详细说明。
如图3所示,用户在该Email客户端101写好邮件后,该Email客户端101可以创建邮件a,并在Email客户端保存邮件a。并且,Email客户端还可以将邮件a归类在Email客户端的发件箱中。然后,Email客户端向第二服务器(如SMTP服务器)发送邮件a。SMTP服务器接收并验证该邮件a后,向第一服务器(如IMAP服务器)发送邮件a。IMAP服务器可以根据邮件a的目的地址向邮件服务器1032发送邮件a,由邮件服务器1032向Email客户端102发送该邮件a。
其中,当IMAP服务器的配置信息指示保存转发的邮件时,IMAP服务器保存邮件a;当IMAP服务器的配置信息指示不保存转发的邮件时,IMAP服务器则不保存邮件a。图3以IMAP服务器的配置信息指示保存转发的邮件为例,示出IMAP服务器保存邮件a的情况。
随后,如图3所示,Email客户端102接收到邮件a后,可以向邮件服务器1032发送用于指示邮件a发送成功的消息,邮件服务器1032则可以通过IMAP服务器和SMTP服务器向Email客户端101发送用于指示邮件a发送成功的消息。Email客户端101确定邮件a发送成功后,可以将邮件a由发件箱移动至已发送文件夹。
为了实现用户使用不同Email客户端登录同一邮箱地址时,各个Email客户端的已发送邮件与邮件服务器的已发送邮件的同步;Email客户端101确定邮件a发送成功后,还可以将邮件a添加到同步更新表,该同步更新表中的邮件用于向IMAP服务器上传。具体的,Email客户端101可以周期性的向IMAP服务器上传同步更新表中的邮件(包括邮件a),并删除同步更新表中已上传至IMAP服务器的邮件。IMAP服务器可以保存Email客户端101上传的邮件a,以便于用户使用其他Email客户端登录同一邮箱地址时,该其他Email客户端可以从IMAP服务器下载邮件a。
其中,IMAP服务器可以为其接收并保存的每一封邮件分配一个UID。如图3所示,IMAP服务器接收并保存了两封邮件a(包括接收自SMTP服务器的邮件a和接收自Email客户端101的邮件a),那么IMAP服务器则可以为这两封邮件a分配两封不同的UID(如UID1和UID2)。在这种情况下,在邮件同步时间到达后,Email客户端101则可以从IMAP服务器下载两封UID不同的邮件a。由于这两封邮件a的UID不同,因此Email客户端101也不会对其进行合并。
如此,Email客户端101在更新已发送文件夹中的邮件后,则可以在Email客户端101的已发送邮件界面显示两封相同的邮件a。例如,假设图4所示的手机400中安装有上述Email客户端。如图4所示,手机400所显示的已发送邮件界面401中包括两封相同的邮件,即邮件402和邮件403。其中,如图4所示,邮件402的收件人与邮件403的收件人均为Bob,邮件402的邮件主题与邮件403的邮件主题均为“会议通知,下午13:00......”,邮件402的发送时间与邮件403的发送时间均为“2017/9/13-08:10”。当然,邮件402与邮件403的邮件正文也完全相同(图4未示出)。由上可知,执行上述邮件同步,Email客户端可以从IMAP服务器下载两封邮件a,Email客户端的已发送邮件列表中则可以显示相同的两封邮件,增加了Email客户端的资源负载,同时也降低了Email客户端收发电子邮件的效率。
针对上述技术问题,本申请实施例提供的一种电子邮件的同步方法及终端,通过本申请实施例的技术方案,IMAP服务器中不会保存两封相同的邮件,因此Email客户端进行邮件同步时,则不会下载多封相同邮件,可以减少Email客户端的资源负载,提高Email客户端收发电子邮件的效率。由于Email客户端进行邮件同步时不会下载多封相同邮件,因此不会显示多封相同的邮件,可以提高用户体验。
其中,本申请实施例提供的电子邮件的同步方法的执行主体可以为邮件同步装置,该邮件同步装置可以为安装有Email客户端的终端(如图4或图5所示的手机400),或者安装有Email客户端的终端的中央处理器(Central Processing Unit,CPU),或者该终端中的用于进行Email客户端管理的控制模块。本申请实施例中以终端中的Email客户端执行电子邮件的同步方法为例,对本申请提供的电子邮件的同步方法进行说明。
示例性的,本申请这里以上述终端是图4所示的手机400为例,提供一种终端的结构示意图,本申请提供的终端可以用于实施本申请各实施例实现的方法,为了便于说明,仅示出了与本申请相关的部分,具体技术细节未揭示的,请参照本发明各实施例。
如图5所示,以手机400作为上述终端举例,手机400具体可以包括:处理器501、射频(Radio Frequency,RF)电路502、存储器503、触摸屏504、蓝牙装置505、一个或多个传感器506、Wi-Fi装置507、定位装置508、音频电路509、外设接口510以及电源装置511等部件。这些部件可通过一根或多根通信总线或信号线(图5中未示出)进行通信。本领域技术人员可以理解,图5中示出的硬件结构并不构成对手机的限定,手机400可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图5对手机400的各个部件进行具体的介绍:
处理器501是手机400的控制中心,利用各种接口和线路连接手机400的各个部分,通过运行或执行存储在存储器503内的应用程序,以及调用存储在存储器503内的数据,执行手机400的各种功能和处理数据。例如,处理器501可以响应于用户在电子邮箱客户端中的操作,创建邮件、发送邮件或者接收邮件。在一些实施例中,处理器501可包括一个或多个处理单元。在本申请一些实施例中,上述处理器501还可以包括指纹验证芯片,用于对采集到的指纹进行验证。
射频电路502可用于在收发信息或通话过程中,无线信号的接收和发送。特别地,射频电路502可以将基站的下行数据接收后,给处理器501处理;另外,将涉及上行的数据发送给基站。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路502还可以通过无线通信和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。
存储器503用于存储应用程序以及数据,处理器501通过运行存储在存储器503的应用程序以及数据,执行手机400的各种功能以及数据处理。存储器503主要包括存储程序区以及存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等);存储数据区可以存储根据使用手机400时所创建的数据(比如音频数据、电话本等)。此外,存储器503可以包括高速随机存取存储器(RandomAccess Memory,RAM),还可以包括非易失存储器,例如磁盘存储器件、闪存器件或其他易失性固态存储器件等。存储器503可以存储各种操作系统,例如,苹果公司所开发的操作系统,谷歌公司所开发的操作系统等。上述存储器503可以是独立的,通过上述通信总线与处理器501相连接;存储器503也可以和处理器501集成在一起。
触摸屏504具体可以包括触控板504-1和显示器504-2。
其中,触控板504-1可采集手机400的用户在其上或附近的触摸事件(比如用户使用手指、触控笔等任何适合的物体在触控板504-1上或在触控板504-1附近的操作),并将采集到的触摸信息发送给其他器件(例如处理器501)。其中,用户在触控板504-1附近的触摸事件可以称之为悬浮触控;悬浮触控可以是指,用户无需为了选择、移动或拖动目标(例如图标等)而直接接触触控板,而只需用户位于设备附近以便执行所想要的功能。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型来实现触控板504-1。
显示器(也称为显示屏)504-2可用于显示由用户输入的信息或提供给用户的信息以及手机400的各种菜单。可以采用液晶显示器、有机发光二极管等形式来配置显示器504-2。触控板504-1可以覆盖在显示器504-2之上,当触控板504-1检测到在其上或附近的触摸事件后,传送给处理器501以确定触摸事件的类型,随后处理器501可以根据触摸事件的类型在显示器504-2上提供相应的视觉输出。虽然在图5中,触控板504-1与显示屏504-2是作为两封独立的部件来实现手机400的输入和输出功能,但是在某些实施例中,可以将触控板504-1与显示屏504-2集成而实现手机400的输入和输出功能。可以理解的是,触摸屏504是由多层的材料堆叠而成,本申请实施例中只展示出了触控板(层)和显示屏(层),其他层在本申请实施例中不予记载。另外,触控板504-1可以以全面板的形式配置在手机400的正面,显示屏504-2也可以以全面板的形式配置在手机400的正面,这样在手机的正面就能够实现无边框的结构。
另外,手机400还可以具有指纹识别功能。例如,可以在手机400的背面(例如后置摄像头的下方)配置指纹识别器512,或者在手机400的正面(例如触摸屏504的下方)配置指纹识别器512。又例如,可以在触摸屏504中配置指纹识别器512来实现指纹识别功能,即指纹识别器512可以与触摸屏504集成在一起来实现手机400的指纹识别功能。在这种情况下,该指纹识别器512配置在触摸屏504中,可以是触摸屏504的一部分,也可以以其他方式配置在触摸屏504中。本申请实施例中的指纹识别器512的主要部件是指纹传感器,该指纹传感器可以采用任何类型的感测技术,包括但不限于光学式、电容式、压电式或超声波传感技术等。
手机400还可以包括蓝牙装置505,用于实现手机400与其他短距离的设备(例如手机、智能手表等)之间的数据交换。本申请实施例中的蓝牙装置可以是集成电路或者蓝牙芯片等。
手机400还可以包括至少一种传感器506,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节触摸屏504的显示器的亮度,接近传感器可在手机400移动到耳边时,关闭显示器的电源。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机400还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不予赘述。
无线保真(Wireless Fidelity,Wi-Fi)装置507,用于为手机400提供遵循Wi-Fi相关标准协议的网络接入,手机400可以通过Wi-Fi装置507接入到Wi-Fi接入点,进而帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。在其他一些实施例中,该Wi-Fi装置507也可以作为Wi-Fi无线接入点,可以为其他设备提供Wi-Fi网络接入。
定位装置508,用于为手机400提供地理位置。可以理解的是,该定位装置508具体可以是全球定位系统(Global Positioning System,GPS)或北斗卫星导航系统、俄罗斯GLONASS等定位系统的接收器。定位装置508在接收到上述定位系统发送的地理位置后,将该信息发送给处理器501进行处理,或者发送给存储器503进行保存。在另外的一些实施例中,该定位装置508还可以是辅助全球卫星定位系统(Assisted Global PositioningSystem,AGPS)的接收器,AGPS系统通过作为辅助服务器来协助定位装置508完成测距和定位服务,在这种情况下,辅助定位服务器通过无线通信网络与设备例如手机400的定位装置508(即GPS接收器)通信而提供定位协助。在另外的一些实施例中,该定位装置508也可以是基于Wi-Fi接入点的定位技术。由于每一个Wi-Fi接入点都有一个全球唯一的媒体访问控制(Media Access Control,MAC)地址,设备在开启Wi-Fi的情况下即可扫描并收集周围的Wi-Fi接入点的广播信号,因此可以获取到Wi-Fi接入点广播出来的MAC地址;设备将这些能够标示Wi-Fi接入点的数据(例如MAC地址)通过无线通信网络发送给位置服务器,由位置服务器检索出每一个Wi-Fi接入点的地理位置,并结合Wi-Fi广播信号的强弱程度,计算出该设备的地理位置并发送到该设备的定位装置508中。
音频电路509、扬声器513、麦克风514可提供用户与手机400之间的音频接口。音频电路509可将接收到的音频数据转换后的电信号,传输到扬声器513,由扬声器513转换为声音信号输出;另一方面,麦克风514将收集的声音信号转换为电信号,由音频电路509接收后转换为音频数据,再将音频数据输出至RF电路502以发送给比如另一手机,或者将音频数据输出至存储器503以便进一步处理。
外设接口510,用于为外部的输入/输出设备(例如键盘、鼠标、外接显示器、外部存储器、用户识别模块卡等)提供各种接口。例如通过通用串行总线(Universal Serial Bus,USB)接口与鼠标连接,通过用户识别模块卡卡槽上的金属触点与电信运营商提供的用户识别模块卡(Subscriber Identification Module,SIM)卡进行连接。外设接口510可以被用来将上述外部的输入/输出外围设备耦接到处理器501和存储器503。
在本申请实施例中,手机400可通过外设接口510与设备组内的其他设备进行通信,例如,通过外设接口510可接收其他设备发送的显示数据进行显示等,本申请对此不作任何限制。
手机400还可以包括给各个部件供电的电源装置111(比如电池和电源管理芯片),电池可以通过电源管理芯片与处理器501逻辑相连,从而通过电源装置111实现管理充电、放电、以及功耗管理等功能。
尽管图5未示出,手机400还可以包括摄像头(前置摄像头和/或后置摄像头)、闪光灯、微型投影装置、近场通信(Near Field Communication,NFC)装置等,在此不予赘述。
以下实施例中的方法均可以在具有上述硬件结构的手机400中实现。
本申请实施例提供一种电子邮件的同步方法,该电子邮件的同步方法应用于安装在终端中的Email客户端,本申请这里以第一服务器是IMAP服务器,第二服务器是SMTP服务器为例,对上述电子邮件的同步方法进行说明,如图6所示,上述电子邮件的同步方法包括步骤601-步骤616:
步骤601、Email客户端101创建第一邮件。
示例性的,请参考图7A,其示出本申请提供的一种Email客户端的显示界面实例示意图。如图7A中的(a)所示的显示界面701中包括“新建”按钮702、“收件箱”按钮703、“发件箱”按钮704和“已发送”按钮705等。“新建”按钮702用于触发Email客户端101新建邮件。“收件箱”按钮703对应于Email客户端101的收件箱,Email客户端101的收件箱中用于保存其他Email客户端101发送至该Email客户端101的邮件。“发件箱”按钮704对应于Email客户端101的草稿箱,Email客户端101的草稿箱用于保存待发送的邮件。“已发送”705对应于Email客户端101的已发送邮件箱,Email客户端101的已发送邮件箱中用于保存Email客户端101已发送的邮件。
其中,Email客户端101可以响应于用户对上述“新建”按钮702的点击操作,显示新邮件的创建页面,然后接收用户在新邮件的创建页面输入的“收件人邮箱地址”、“邮件主题”和“邮件正文”等信息,创建新邮件(即上述第一邮件)。
步骤602、Email客户端101保存第一邮件,并将第一邮件归类在发件箱。
其中,Email客户端101创建上述第一邮件后,可以在Email客户端101保存该第一邮件,并将第一邮件归类在发件箱。Email客户端101还可以响应于用户输入的用于指示Email客户端101显示发件箱的操作,将该第一邮件显示在发件箱中。例如,假设上述第一邮件的收件人的邮箱地址是Susan@163.com。以手机400是终端为例,手机400中的Email客户端101保存第一邮件后,图7A中的(a)所示的“发件箱”704中则可以增加一封待发送邮件。
步骤603、Email客户端101发送上述第一邮件,该第一邮件中携带第一标识。该第一标识用于标识该第一邮件。
一般而言,Email客户端101可以利用RFC相关协议向SMTP服务器发送上述第一邮件。按照RFC相关协议的规定,电子邮件中包括一个MID字段。本申请实施例中的第一标识可以携带在第一邮件的MID字段中。
在本申请一些实施例中,Email客户端可以为该Email客户端101发送的每一封邮件分配一个用于唯一标识该邮件的邮件标识(即MID)。
示例性的,第一邮件中携带的第一标识可以是Email客户端101在创建第一邮件时,为该第一邮件分配的可以唯一标识该第一邮件的邮件标识;或者该第一标识可以是Email客户端101在发送第一邮件时,为该第一邮件分配的、可以唯一标识该第一邮件的邮件标识。
举例来说,本申请实施例中的第一标识可以是Email客户端101根据第一邮件的“收件人邮箱地址”、“邮件主题”和“邮件正文”等信息,采用预先设定的算法(如哈希算法)计算得到的。或者,上述第一标识可以是Email客户端101根据电子邮箱的邮箱地址和该Email客户端101所在终端的相关信息,如网际协议(Internet Protocol,IP)地址或者MAC地址,结合第一邮件的相关信息(如“收件人邮箱地址”、“邮件主题”和“邮件正文”等信息),采用预先设定的算法计算得到的。
可以理解的是,Email客户端101生成第一标识的方法包括但不限于上述实例中的方法。上述第一标识只要可以唯一标识上述第一邮件即可,本申请对Email客户端101生成第一标识的具体方法不作限定。
需要说明的是,本申请实施例中的MID不同于IMAP服务器为邮件分配的UID。其中,假设Email客户端101为第一邮件分配第一标识,如MID-1,那么该第一邮件中则始终携带有可以唯一标识该第一邮件的MID-1,该Email客户端101或者其他设备(如IMAP服务器或者SMTP服务器)不会再为该第一邮件分配其他的MID。而IMAP服务器在每次保存第一邮件时,都可以为该第一邮件分配一个UID。例如,IMAP服务器接收到SMTP服务器转发的第一邮件,可以为该第一邮件分配一个UID,如UID-1;IMAP服务器接收到Email客户端101发送的用于进行邮件同步的第一邮件,可以再为该第一邮件分配一个UID,如UID-2,UID-1与UID-2不同。如此,如表1所示,本申请实施例中,则可以存在如下情况:同一邮件的一个MID对应两个不同的UID。
表1
在本申请实施例中,由于Email客户端101为第一邮件分配的第一标识可以唯一标识该第一邮件,因此,即使IMAP服务器在接收到SMTP发送的第一邮件后,为该第一邮件分配一个UID,在接收到Email客户端101发送的第一邮件后,为该第一邮件分配另一个UID,即IMAP服务器为同一第一邮件分配两个不同的UID;Email客户端101或者其他设备(IMAP服务器或者SMTP服务器)也可以根据第一标识,准确的查找到该第一邮件。
其中,Email客户端101可以响应于用户对上述新邮件的创建页面中“发送”按钮的点击操作,利用RFC协议向SMTP服务器发送携带第一标识的第一邮件,由SMTP服务器转发该第一邮件。
步骤604、SMTP服务器接收携带第一标识的第一邮件。
其中,SMTP服务器在接收到Email客户端101发送的任一封邮件(如第一邮件)后,可以对该第一邮件是否是垃圾邮件,该第一邮件是否携带网络病毒,发送该第一邮件的电子邮箱的邮箱地址是否为合法邮箱地址等信息进行验证。在第一邮件验证通过后,SMTP服务器可以向IMAP服务器发送第一邮件,即执行步骤605。如果验证未通过,SMTP服务器则可以丢弃该邮件。
步骤605、SMTP服务器向IMAP服务器发送携带第一标识的第一邮件。
步骤606、IMAP服务器接收第一邮件,并判断IMAP服务器的配置信息是否指示IMAP服务器保存来自SMTP服务器的邮件。
其中,IMAP服务器的配置信息可以是IMAP服务器的默认配置信息(即出厂设置的配置信息)。或者,该配置信息也可以是由用户在设置电子邮箱时,针对该电子邮箱设置的、用于指示IMAP服务器处理该电子邮箱发送的邮件的配置信息。又或者,该配置信息可以是服务器管理员为该IMAP服务器设置的配置信息。本申请实施例对此不作限制。
具体的,当IMAP服务器的配置信息指示IMAP服务器保存来自SMTP服务器的邮件时,可以继续执行步骤607-步骤608;当IMAP服务器的配置信息未指示IMAP服务器保存来自SMTP服务器的邮件,或者IMAP服务器的配置信息指示IMAP服务器不保存来自SMTP服务器的邮件时,可以直接执行步骤608,而不执行步骤607:
步骤607、IMAP服务器保存携带第一标识的第一邮件。
其中,当IMAP服务器的配置信息指示IMAP服务器保存来自SMTP服务器的邮件时,IMAP服务器则可以保存第一邮件,并向第一邮件的目的地址对应的邮件服务器(如图6所示的邮件服务器1032)发送该第一邮件。IMAP服务器还可以为该第一邮件分配一个UID。
步骤608、IMAP服务器通过邮件服务器1032向Email客户端102发送携带第一标识的第一邮件。
当IMAP服务器的配置信息未指示IMAP服务器保存来自SMTP服务器的邮件时,IMAP服务器则可以直接向邮件服务器1032发送第一邮件,而不需要保存第一邮件。邮件服务器1032在接收到第一邮件后,可以向Email客户端102发送该第一邮件。
步骤609、Email客户端102通过邮件服务器1032向IMAP服务器发送第一消息,该第一消息用于指示第一邮件发送成功。
步骤610、IMAP服务器通过SMTP服务器向Email客户端101发送第一消息,该第一消息用于指示第一邮件发送成功。
本申请实施例中,IMAP服务器可以向SMTP服务器发送第一消息,以指示第一邮件发送成功;SMTP服务器在接收到第一消息后,可以向Email客户端101转发该第一消息。
步骤611、Email客户端101在接收到第一消息时,将第一邮件由发件箱移动至已发送文件夹。
其中,Email客户端101接收到第一消息后,可以确定第一邮件发送成功,则可以将第一邮件由发件箱移动至已发送文件夹,以提示用户该第一邮件已经发送成功。例如,假设手机400中的Email客户端101发送的第一邮件的收件人为Susan@163.com,邮件主题为“活动通知”,发送时间为“2017/9/14-09:12”。如图7A中的(b)所示,手机400的已发送界面706可以显示该第一邮件707。
步骤612、Email客户端101根据上述第一标识,确定IMAP服务器中是否已保存第一邮件。
其中,由于Email客户端101为第一邮件分配了可以唯一标识该第一邮件的第一标识,如果IMAP服务器中已保存了第一邮件,那么该IMAP服务器中已保存的第一邮件中也携带了第一标识;因此,Email客户端101可以根据该第一标识,查询IMAP服务器中是否已保存第一邮件。
需要说明的是,Email客户端101可以在向IMAP服务器上传第一邮件之前,执行步骤612,然后根据查询结果来决定是否向IMAP服务器上传第一邮件;或者,Email客户端101可以在接收到上述第一消息后,执行步骤612。
具体的,如果IMAP服务器中已保存上述第一邮件,Email客户端101不向IMAP服务器发送第一邮件;如果IMAP服务器中未保存上述第一邮件,Email客户端101则可以向IMAP服务器发送第一邮件,即执行步骤613:
步骤613、Email客户端101向IMAP服务器发送第一邮件。
步骤614、IMAP服务器接收并保存第一邮件。
进一步的,如图7B所示,用户可以在手机400中的Email客户端101登录邮箱地址“Alice@126.com”。当然,用户也可以在其他Email客户端101登录“Alice@126.com”。例如,如图8A所示,用户可以在手机800中的Email客户端101登录“Alice@126.com”。
例如,如图7B所示,用户在手机400中的Email客户端101“Alice@126.com”,手机400中的Email客户端101可以通过SMTP服务器、IMAP服务器和邮件服务1302,向Susan的Email客户端(即Email客户端102)发送邮件707。随后,如图7A中的(b)所示,手机400的已发送界面706可以显示该第一邮件707。
假设在手机400中的Email客户端101向Susan的Email客户端发送邮件707之后,如图8A所示,用户在手机800中的Email客户端101登录邮箱地址“Alice@126.com”。手机800中的Email客户端101可以通过SMTP服务器、IMAP服务器和邮件服务1302,向Ben的Email客户端(即Email客户端102)发送邮件802。随后,如图8B所示,手机800的已发送界面801可以显示邮件802。
但是,如图7A中的(b)所示,手机400的已发送界面706中不能显示邮件802,如图8B所示,手机800的已发送界面801中不能显示邮件707。针对这种情况,由于Email客户端101在发送第一邮件后,IMAP服务器上也保存了该第一邮件;因此,Email客户端101可以周期性的从IMAP服务器下载对应电子邮箱的已发送邮件,以实现已发送邮件的同步。其中,本申请实施例中,将IMAP服务器中已保存的用于进行邮件的同步的邮件称为同步邮件。具体的,在邮件同步时间到达后,本申请的方法还可以包括步骤615-步骤616:
步骤615、Email客户端101从IMAP服务器下载对应电子邮箱的已发送邮件。
其中,IMAP服务器中可以针对每一个Email客户端(邮箱地址固定的一个Email客户端),保存该Email客户端的已发送邮件。本申请实施例中的邮件同步时间可以是预先设置的固定时间点(如每周三的13:00,或者每天的12:00等);或者,该邮件同步时间可以是用户在设置该Email客户端时,为该Email客户端设置的固定时间点(如每天9:00);又或者,该邮件同步时间是IMAP服务器中配置的固定时间点。本申请对此不作限制。
举例来说,Email客户端可以在上述邮件同步时间到达时,主动向IMAP服务器发送邮件同步请求,以从IMAP服务器下载对应该Email客户端的同步邮件。其中,该邮件同步请求中可以携带该Email客户端上次进行邮件同步的时间,以便于IMAP服务器可以向Email客户端发送截止该时间之后,IMAP服务器保存的同步邮件。或者,IMAP服务器可以在邮件同步时间到达后,向该Email客户端发送截止上次进行邮件同步后,该IMAP服务器中已保存的同步邮件;如此,无论哪一个Email客户端登录邮箱地址,该Email客户端都可以接收到IMAP服务器发送的同步邮件。
需要说明的是,由于Email客户端只会在IMAP服务器没有保存第一邮件时,才会向IMAP服务器发送该第一邮件;因此,IMAP服务器只保存一封第一邮件。如此,Email客户端在进行邮件同步时,只能从IMAP服务器下载一封第一邮件,而不可能从IMAP服务器下载两封相同的第一邮件。
步骤616、Email客户端101更新电子邮箱的已发送文件夹中的邮件。
其中,Email客户端从IMAP服务器下载至少一个同步邮件后,针对每一个同步邮件执行以下操作:对比该同步邮件的MID与Email客户端保存的已发送邮件的MID;如果该同步邮件的MID与Email客户端保存的每一个已发送邮件的MID均不同,则在Email客户端保存该同步邮件,并在Email客户端的已发送文件夹中显示该同步邮件;如果该同步邮件的MID与Email客户端保存的任一已发送邮件的MID相同,则丢弃该同步邮件。
示例性的,IMAP服务器中可以保存手机400发送的同步邮件707和手机800发送的同步邮件802。如此,手机400在执行上述步骤613-步骤616之后,则可以显示图9中的(a)所示的已发送界面。图9中的(a)所示的已发送界面中包括同步邮件707和同步邮件802。手机800在执行上述步骤613-步骤616之后,则可以显示图9中的(b)所示的已发送界面。图9中的(b)所示的已发送界面中包括同步邮件707和同步邮件802。而不会出现手机400和手机800的已发送界面中显示两封相同的同步邮件707,以及两封相同的同步邮件802的情况。
本申请提供的一种电子邮件的同步方法,Email客户端可以为第一邮件分配一个用于唯一标识该第一邮件的MID。并且,在向IMAP服务器上传邮件时,可以根据该邮件的MID,先查询IMAP服务器是否已经保存了该邮件;当IMAP服务器已保存该邮件时,不向IMAP服务器上传该邮件;当IMAP服务器未保存该邮件时,才向IMAP服务器上传该邮件。如此,IMAP服务器中则只保存一封该邮件,Email客户端进行邮件同步时,则不会下载多封相同邮件,可以减少Email客户端的资源负载,提高Email客户端收发电子邮件的效率。并且,Email客户端进行邮件同步时则不会下载多封相同邮件,因此不会显示多封相同的邮件,可以提高用户体验。
示例性的,在本申请的第一种应用场景中,Email客户端101可以通过向IMAP服务器发送UID查询命令的方式,指示IMAP服务器查询邮件标识与第一标识相同的邮件的UID,根据查询结果判断IMAP服务器中是否已保存第一邮件。具体的,如图10所示,图6所示的步骤612可以包括步骤1001-步骤1006:
步骤1001、Email客户端101向IMAP服务器发送UID查询命令,该UID查询命令中携带有第一标识,该UID查询命令用于指示IMAP服务器查询邮件标识与第一标识相同的邮件的UID。
本申请实施例中,Email客户端101可以基于RFC协议向IMAP服务器发送UID查询命令,该UID查询命令用于指示IMAP服务器查询邮件标识与第一标识相同的邮件的UID。
步骤1002、IMAP服务器接收UID查询命令,并响应于该UID查询命令,从IMAP服务器保存的邮件中,查找邮件标识与第一标识相同的邮件的UID。
示例性的,本申请实施例中的UID查询命令的格式如下所示:UID SEARCH HEADERMID<*@email.android.com>。其中,<>中的内容“*@email.android.com”是本申请给出的一种MID的实例。
可选的,不同类型的电子邮箱的邮件服务器支持的UID查询命令的格式不同。例如,网易163邮箱和网易126邮箱等大多数邮箱的邮件服务器支持采用UID SEARCH HEADERMID<*@email.android.com>,查找邮件的UID;而部分邮箱(如Hotmail邮箱和Outlook邮箱)的邮件服务器则不支持采用上述格式的UID查询命令,查找邮件的UID。
针对这种情况,本申请还提供一种UID查询命令的格式:UID SEARCH(HEADER MID<*@email.android.com>)。其中,<>中的内容“*@email.android.com”是本申请给出的一种MID的实例。Hotmail邮箱和Outlook邮箱等邮箱的邮件服务器支持采用UID SEARCH(HEADERMID<*@email.android.com>),查找邮件的UID。
在步骤1002之后,如果IMAP服务器查找到邮件标识与第一标识相同的邮件的UID,则继续执行步骤1003-步骤1004,如果IMAP服务器未查找到邮件标识与第一标识相同的邮件的UID,则继续执行步骤1005-步骤1006:
步骤1003、IMAP服务器向Email客户端101发送第一UID查询响应,该第一UID查询响应中携带查找到的邮件的UID,该第一UID查询响应用于指示第一服务器中已保存第一邮件。
步骤1004、Email客户端101接收第一UID查询响应,保存第一UID查询响应中携带的UID。
其中,终端在接收到第一UID查询响应后,可以确定IMAP服务器中已保存第一邮件,终端不向IMAP服务器发送第一邮件。
步骤1005、IMAP服务器向终端发送第二UID查询响应,该第二UID查询响应用于指示IMAP服务器中未保存第一邮件。
步骤1006、Email客户端101接收IMAP服务器发送的第二UID查询响应。
其中,Email客户端101在接收到第二UID查询响应后,可以确定IMAP服务器中未保存第一邮件,则可以向IMAP服务器发送第一邮件,即继续执行步骤613。
本申请实施例中,Email客户端101可以通过向IMAP服务器发送UID查询命令的方式,指示IMAP服务器查询邮件标识与第一标识相同的邮件的UID,以判断IMAP服务器中是否保存第一邮件。
在第一种应用场景的第一种实现方式中,上述UID查询命令是UID SEARCH HEADERMID<*@email.android.com>格式(简称第一种格式)的命令。
在第一种应用场景的第二种实现方式中,上述UID查询命令是UID SEARCH(HEADERMID<*@email.android.com>)格式(简称第二种格式)的命令。
当Email客户端101知道IMAP服务器所支持的UID查询命令的格式时,该Email客户端101可以在上述两种格式的UID查询命令中,选择性的向IMAP服务器发送IMAP服务器支持的UID查询命令。但是,Email客户端101不一定知道IMAP服务器所支持的UID查询命令的格式。如果Email客户端101向IMAP服务器发送的UID查询命令是该IMAP服务器不支持的命令,那么即使该IMAP服务器中已保存有第一邮件,该IMAP服务器也不会向Email客户端101回复上述第一查询响应。
针对上述问题,在第一种应用场景的第三种实现方式中,当Email客户端101不知道IMAP服务器所支持的UID查询命令的格式时,该Email客户端101则可以先发送第一种格式的UID查询命令,以指示IMAP服务器查询邮件标识与第一标识相同的邮件的UID。如果Email客户端101接收到IMAP服务器发送的第二UID查询命令,则表示该IMAP服务器未保存第一邮件,或者该IMAP服务器不支持采用第一种格式的UID查询命令,查找邮件的UID。此时,Email客户端101则可以继续向IMAP服务器发送第二种格式的UID查询命令,以指示IMAP服务器查询邮件标识与第一标识相同的邮件的UID。如果Email客户端101接收到IMAP服务器发送的第二UID查询命令,则可以认为该IMAP服务器未保存第一邮件。
其中,无论在Email客户端101发送第一种格式的UID查询命令,还是发送第二种格式的UID查询命令后,如果Email客户端101接收到IMAP服务器发送的第一UID查询命令,则终端不向IMAP服务器发送第一邮件。
当然,Email客户端101也可以先发送上述第二种格式的UID查询命令,在接收到第二UID查询命令后,再发送第一种格式的UID查询命令,本申请实施例对第二种格式的UID查询命令和第一种格式的UID查询命令发送的先后顺序不作限制。
示例性的,本申请实施例这里以Email客户端101先发送第一种格式的UID查询命令,在接收到第二UID查询命令后,再发送第二种格式的UID查询命令为例,对Email客户端101查询IMAP服务器中是否已保存第一邮件的方法进行举例说明。如图11所示,图10所示的步骤1001可以替换为步骤1001a,图10所示的步骤1002可以替换为步骤1002a。在图10所示的步骤1006之后,步骤613之前,本申请的方法还可以包括步骤1001b、步骤1002b,以及步骤1003-步骤1004或者步骤1005-步骤1006:
步骤1001a、Email客户端101向IMAP服务器发送第一种格式的UID查询命令。
步骤1001b、Email客户端101向IMAP服务器发送第二种格式的UID查询命令。
需要说明的是,步骤1001a和步骤1001b的详细描述可以参考步骤1001中的相关内容,本申请这里不再赘述。
步骤1002a、IMAP服务器接收第一种格式的UID查询命令,并响应于该第一种格式的UID查询命令,从IMAP服务器保存的邮件中,查找邮件标识与第一标识相同的邮件的UID。
步骤1002b、IMAP服务器接收第二种格式的UID查询命令,并响应于该第二种格式的UID查询命令,从IMAP服务器保存的邮件中,查找邮件标识与第一标识相同的邮件的UID。
需要说明的是,步骤1002a和步骤1002b的详细描述可以参考步骤1002中的相关内容,本申请这里不再赘述。如图11所示,本申请实施例中,将“Email客户端101通过上述第一种格式的UID查询命令,指示IMAP服务器查询邮件标识与第一标识相同的邮件的UID”的查询方式称为一级查询,将“Email客户端101通过上述第二种格式的UID查询命令,指示IMAP服务器查询邮件标识与第一标识相同的邮件的UID”称为二级查询。
当然,Email客户端101还可以先发送上述第二种格式的UID查询命令,并在接收到第二UID查询命令后,再发送第一种格式的UID查询命令。
举例来说,在第一种应用场景的,IMAP服务器可以响应于UID查询命令(任一种格式的UID查询命令),从IMAP服务器保存的M个第二邮件中,查找邮件标识与第一标识相同的邮件的UID,M≥1。其中,这M个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后M位的邮件。例如,M=3。
本申请实施例中,Email客户端101可以向IMAP服务器发送一种格式的UID查询命令(如第二种格式的UID查询命令)后,如果接收到第二UID查询命令,则可以继续向IMAP服务器发送另一种格式的UID查询命令(如第一种格式的UID查询命令),以判断IMAP服务器中是否保存第一邮件。这样,可以避免由于IMAP服务器不支持采用第一次发送的UID查询命令查询UID,导致查询失败的问题,可以提高Email客户端101获得的判断结果的准确性。
在本申请的第二种应用场景中,IMAP服务器可能不支持采用上述两种格式的UID查询命令查询UID。或者,IMAP服务器可能不支持根据邮件的MID查询邮件的UID。在这种应用场景中,Email客户端101可以从IMAP服务器获取该IMAP服务器保存的N个第二邮件的邮件标识,然后依次遍历这N个第二邮件的邮件标识,查找邮件标识与第一标识相同的邮件;当查找到邮件标识与第一标识相同的邮件时,确定IMAP服务器中已保存第一邮件。上述N个第二邮件是第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1。例如,N=3。具体的,如图12所示,图6所示的步骤612可以包括步骤1201-步骤1204:
步骤1201、Email客户端101向IMAP服务器发送标识查询请求,该标识查询请求用于获取IMAP服务器保存的N个第二邮件的邮件标识。
其中,本申请实施例中的标识查询请求也可以是Email客户端101基于RFC协议向IMAP服务器发送的。该标识查询请求中可以携带有该终端所登录的电子邮箱的邮箱标识,如邮箱地址。
步骤1202、IMAP服务器接收标识查询请求,获取N个第二邮件的邮件标识。
其中,IMAP服务器接收到标识查询请求后,可以读取该IMAP服务器保存的N个第二邮件,并获取这N个第二邮件的邮件标识和UID。
示例性的,如表2所示,其示出了IMAP服务器获取的N个第二邮件的邮件标识和UID的实例。
表2
其中,表2所示的N个第二邮件中,IMAP服务器保存第1个第二邮件的时间(简称第1个第二邮件的保存时间)早于第2个第二邮件的保存时间,第N-1个第二邮件的保存时间早于第N个第二邮件的保存时间。
步骤1203、IMAP服务器向Email客户端101发送标识查询响应,该标识查询响应中携带有N个第二邮件的邮件标识。
可选的,该标识查询响应中还可以携带N个第二邮件的UID。
步骤1204、Email客户端101依次遍历N个第二邮件,查找邮件标识与第一标识相同的邮件。
其中,Email客户端101可以按照这N个第二邮件的保存时间,由后向前的顺序,先判断表2所示的第N个第二邮件的邮件标识是否与第一标识相同。当第N个第二邮件的邮件标识与第一标识相同时,保存该第N个第二邮件的UID,并确定IMAP服务器中已保存第一邮件。当第N个第二邮件的邮件标识与第一标识不同时,按照同样的方法依次判断第N-1个第二邮件的邮件标识是否与第一标识相同,......第1个第二邮件的邮件标识是否与第一标识相同,以判断IMAP服务器中是否保存第一邮件。
示例性的,如图13所示,图12所示的步骤1204可以包括步骤1301-步骤1304:
步骤1301、为循环计数器的计数值i赋值,i=N-1。
步骤1302、判断循环计数器的计数值i是否大于或者等于0。
具体的,当循环计数器的计数值i大于或者等于0时,继续执行S1303;当环计数器的计数值i小于0时,则继续执行步骤613。
步骤1303、判断第i+1个第二邮件的邮件标识与第一标识是否相同,第i+1个第二邮件是上述N个第二邮件中,按照邮件保存时间的先后顺序排列在第i+1位的邮件。
具体的,当第i+1个第二邮件的邮件标识与第一标识相同时,终端不向IMAP服务器发送第一邮件;当第i+1个第二邮件的邮件标识与第一标识不同时,继续执行步骤1304:
步骤1304、循环计数器的计数值i--,并继续执行步骤1302。
示例性的,假设N=3,IMAP服务器中已保存的3封第二邮件中,第1个第二邮件的保存时间早于第2个第二邮件的保存时间,第2个第二邮件的保存时间早于第1个第二邮件的保存时间。Email客户端101可以执行步骤1301,为循环计数器的计数值i赋值,i=3-1=2;执行步骤1302,判断得到循环计数器的计数值2大于0;执行步骤1303,假设第3(3=i+1=2+1)个第二邮件的邮件标识与第一标识不同;执行步骤1304,循环计数器的计数值i--。此时,i=2-1=1。Email客户端101继续执行步骤1302,判断得到循环计数器的计数值1大于0;执行步骤1303,假设得到第2(2=i+1=1+1)个第二邮件的邮件标识与第一标识不同;执行步骤1304,循环计数器的计数值i--。此时,i=1-1=0。Email客户端101继续执行步骤1302,判断得到循环计数器的计数值0等于0;执行步骤1303,假设得到第1(1=i+1=0+1)个第二邮件的邮件标识与第一标识不同,则执行步骤613。
需要说明的是,本申请实施例中,IMAP服务器响应于UID查询命令,从IMAP服务器保存的M个第二邮件中,查找邮件标识与第一标识相同的邮件的方法,可以参考步骤1301-步骤1304,本申请这里不再详细描述。
其中,当查找到邮件标识与第一标识相同的邮件时,Email客户端101可以确定IMAP服务器中已保存第一邮件,Email客户端101的邮件发送流程结束;当未查找到邮件标识与第一标识相同的邮件时,Email客户端101则可以确定IMAP服务器中未保存第一邮件,则继续执行步骤613。
本申请实施例中,即使IMAP服务器不支持采用上述两种格式的UID查询命令查询UID。或者,IMAP服务器不支持根据邮件的MID查询邮件的UID;Email客户端101也可以采用上述循环遍历查询方式,判断IMAP服务器中是否保存第一邮件。这样,可以避免由于IMAP服务器不支持采用上述两种格式的UID查询命令查询UID,或者IMAP服务器不支持根据邮件的MID查询邮件的UID,导致查询失败的问题,可以提高Email客户端101获得的判断结果的准确性。
其中,本申请实施例中,将图12和图13所示的“Email客户端101通过发送标识查询请求,查询邮件标识与第一标识相同的邮件”称为循环遍历查询。
本申请实施例中,Email客户端101可能并不了解IMAP服务器是否支持采用上述两种格式的UID查询命令查询UID。在这种情况下,如图14所示,终端可以先执行上述一级查询;当执行一级查询查找到对应的UID时,则Email客户端101不向IMAP服务器发送第一邮件;当执行一级查询未查找到对应的UID时,则可以执行二级查询。当执行二级查询查找到对应的UID时,则Email客户端101不向IMAP服务器发送第一邮件;当执行二级查询未查找到对应的UID时,则可以执行循环遍历查询。当执行循环遍历查询查找到对应的邮件时,则Email客户端101不向IMAP服务器发送第一邮件;当执行循环遍历查询未查找到对应的邮件时,Email客户端101向IMAP服务器发送第一邮件。即本申请实施例中,Email客户端101可以通过上述三级查询来查询邮件标识与第一标识相同的邮件,可以提高Email客户端101获得的判断结果的准确性。
可选的,在本申请的第三种应用场景中,Email客户端101在向IMAP服务器发送第一邮件之前,可以不查询IMAP服务器是否保存第一邮件。即无论IMAP服务器是否保存第一邮件,Email客户端都向IMAP服务器发送第一邮件。在这种应用场景中,IMAP服务器在接收到Email客户端发送的第一邮件后,可以根据该第一邮件携带的第一标识,查询该IMAP服务器中是否已保存邮件标识为第一标识的邮件;如果IMAP服务器中已保存邮件标识为第一标识的邮件,IMAP服务器则不保存接收自Email客户端的第一邮件(即丢弃接收自Email客户端的第一邮件);如果IMAP服务器中未保存邮件标识为第一标识的邮件,IMAP服务器则保存接收自Email客户端的第一邮件。
其中,由于第一邮件中携带可以唯一标识该第一邮件的第一标识,因此,如果IMAP服务器接收Email客户端101发送的第一邮件之前,已经保存了一封第一邮件,那么该IMAP服务器在接收到Email客户端发送的第一邮件后,可以根据第一标识查询到IMAP服务器中已保存邮件标识为第一标识的邮件,则不会重复保存该第一邮件。
如此,IMAP服务器中只保存一封该邮件,Email客户端进行邮件同步时,则不会下载多封相同邮件,可以减少Email客户端的资源负载,提高Email客户端收发电子邮件的效率。并且,Email客户端进行邮件同步时则不会下载多封相同邮件,因此不会显示多封相同的邮件,可以提高用户体验。
可以理解的是,上述Email客户端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述Email客户端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图15示出了上述实施例中所涉及的Email客户端的一种可能的结构示意图,该Email客户端1500包括:确定单元1501、控制单元1502和发送单元1503。
其中,确定单元1501用于支持Email客户端1500执行方法实施例中的步骤612、步骤1001-步骤1006、步骤1001b、步骤1002b、步骤1003、步骤1004、步骤1005、步骤1006、步骤1201-步骤1204、1301-步骤1304,和/或用于本文所描述的技术的其它过程。控制单元1502用于支持Email客户端1500执行方法实施例中的步骤602、步骤611、步骤615、步骤616,和/或用于本文所描述的技术的其它过程。发送单元1503用于支持Email客户端1500执行方法实施例中的步骤603、步骤609、步骤613,和/或用于本文所描述的技术的其它过程。
进一步的,Email客户端1500还可以包括接收单元。接收单元用于接收SMTP服务器发送的第一消息,和/或用于本文所描述的技术的其它过程。
进一步的,Email客户端1500还可以包括创建单元。该创建单元用于支持Email客户端1500执行方法实施例中的步骤601,和/或用于本文所描述的技术的其它过程。
进一步的,Email客户端1500还可以包括下载单元。该下载单元用于支持Email客户端1500执行方法实施例中的步骤615,和/或用于本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
当然,Email客户端1500包括但不限于上述所列举的单元模块,例如,Email客户端1500还可以包括存储单元,该存储单元用于保存Email客户端1500接收到的邮件,已发送的邮件等相关数据。并且,上述功能单元的具体所能够实现的功能也包括但不限于上述实例所述的方法步骤对应的功能,Email客户端1500的其他单元的详细描述可以参考其所对应方法步骤的详细描述,本申请实施例这里不再赘述。
在采用集成的单元的情况下,图16示出了上述实施例中所涉及的Email客户端的一种可能的结构示意图。该Email客户端1600包括:处理模块1601、存储模块1602和通信模块1603。处理模块1601用于支持Email客户端1500执行步骤601、步骤602、步骤611、步骤612、步骤615、步骤616、步骤1301-步骤1304,和/或用于本文所描述的技术的其它过程。通信模块1603用于支持Email客户端1500执行步骤603、步骤609、步骤613,以及步骤1001-步骤1006、步骤1001b、步骤1002b、步骤1003-步骤1004、步骤1005-步骤1006、步骤1201-步骤1204,和/或用于本文所描述的技术的其它过程。其中,通信模块1603可以在处理模块1601的指示下执行步骤1001-步骤1006、步骤1001b、步骤1002b、步骤1003-步骤1004、步骤1005-步骤1006、步骤1201-步骤1204。
其中,处理模块1601可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1603可以是收发器、收发电路或通信接口等。存储模块1602可以是存储器。
当处理模块1601为处理器(如图5所示的处理器501),通信模块1603为射频电路(如图5所示的射频电路502),存储模块1602为存储器(如图5所示的存储器503)时,本申请实施例中安装上述Email客户端的终端可以为图5所示的终端400。其中,上述通信模块1603不仅可以包括射频电路,还可以包括WiFi模块和蓝牙模块。射频电路、WiFi模块和蓝牙模块等通信模块可以统称为收发器或者通信接口。其中,上述处理器、通信接口、存储器可以通过总线耦合在一起。
本申请还提供一种电子邮件的同步系统,该电子邮件的同步系统包括多个电子邮箱客户端(即Email客户端)和至少一个邮件服务器(包括第一服务器)。例如,如图1所示,电子邮件的同步系统10中包括Email客户端101、邮件服务器103和Email客户端102。该Email客户端和第一服务器可以用于执行图6、图10、图11、图12、图13和图14中任一附图中的相关方法步骤实现上述实施例中的电子邮件的同步方法。
本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机程序代码,当上述处理器执行该计算机程序代码时,该终端执行图6、图10、图11、图12、图13和图14中任一附图中的相关方法步骤实现上述实施例中的电子邮件的同步方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在终端上运行时,使得终端执行图6、图10、图11、图12、图13和图14中任一附图中的相关方法步骤实现上述实施例中的电子邮件的同步方法。
其中,本发明实施例提供的Email客户端1500、Email客户端1600、终端400、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两封或两封以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种电子邮件的同步方法,其特征在于,所述方法应用于电子邮件客户端,所述方法包括:
所述电子邮件客户端向第二服务器发送携带第一标识的第一邮件;
所述电子邮件客户端根据所述第一标识,确定第一服务器中是否保存所述第一邮件,所述第一标识是所述电子邮件客户端为所述第一邮件分配的,用于唯一标识所述第一邮件的邮件标识;
其中,所述第一服务器中已保存的第一邮件是所述第二服务器向所述第一服务器发送的;
当所述第一服务器中已保存所述第一邮件时,所述电子邮件客户端不向所述第一服务器发送所述第一邮件,所述第一邮件中携带所述第一标识;
当所述第一服务器中未保存所述第一邮件时,所述电子邮件客户端向所述第一服务器发送所述第一邮件,所述第一邮件中携带所述第一标识;
所述电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,包括:
所述电子邮件客户端向所述第一服务器发送用户身份标识UID查询命令,所述UID查询命令中携带有所述第一标识,所述UID查询命令用于查询邮件标识与所述第一标识相同的邮件的UID;
所述电子邮件客户端接收所述第一服务器发送的第二UID查询响应,所述第二UID查询响应用于指示所述第一服务器中未保存所述第一邮件;
所述电子邮件客户端向所述第一服务器发送标识查询请求,所述标识查询请求用于获取所述第一服务器保存的N个第二邮件的邮件标识,所述N个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;
所述电子邮件客户端接收所述第一服务器发送的标识查询响应,所述标识查询响应中携带有所述N个第二邮件的邮件标识;
所述电子邮件客户端依次遍历所述N个第二邮件,查找所述邮件标识与所述第一标识相同的邮件;
如果查找到所述邮件标识与所述第一标识相同的邮件,所述电子邮件客户端确定所述第一服务器中已保存所述第一邮件;
如果未查找到所述邮件标识与所述第一标识相同的邮件,所述电子邮件客户端确定所述第一服务器中未保存所述第一邮件。
2.根据权利要求1所述的方法,其特征在于,所述电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,包括:
所述UID查询命令用于查询邮件标识与所述第一标识相同的邮件的UID;
所述电子邮件客户端接收所述第一服务器发送的第一UID查询响应,所述第一UID查询响应用于指示所述第一服务器中已保存所述第一邮件;
所述电子邮件客户端根据所述第一UID查询响应确定所述第一服务器中已保存所述第一邮件,或者根据所述第二UID查询响应确定所述第一服务器中未保存所述第一邮件。
3.根据权利要求1所述的方法,其特征在于,所述电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,包括:
所述电子邮件客户端向所述第一服务器发送标识查询请求,所述标识查询请求用于获取所述第一服务器保存的N个第二邮件的邮件标识,所述N个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;
所述电子邮件客户端接收所述第一服务器发送的标识查询响应,所述标识查询响应中携带有所述N个第二邮件的邮件标识;
所述电子邮件客户端依次遍历所述N个第二邮件的邮件标识,查找所述邮件标识与所述第一标识相同的邮件;
如果查找到所述邮件标识与所述第一标识相同的邮件,所述电子邮件客户端确定所述第一服务器中已保存所述第一邮件;
如果未查找到所述邮件标识与所述第一标识相同的邮件,所述电子邮件客户端确定所述第一服务器中未保存所述第一邮件。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一标识是所述电子邮件客户端在创建所述第一邮件时,为所述第一邮件分配的;或者,所述第一标识是所述电子邮件客户端在发送所述第一邮件时,为所述第一邮件分配的。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述电子邮件客户端根据第一标识,确定第一服务器中是否保存第一邮件,包括:
所述电子邮件客户端在接收到所述第一服务器发送的第一消息时,根据所述第一标识,确定所述第一服务器中是否保存所述第一邮件,所述第一消息用于指示所述第一邮件发送成功;
或者,
所述电子邮件客户端在向所述第一服务器发送所述第一邮件之前,根据所述第一标识,确定所述第一服务器中是否保存所述第一邮件。
6.一种电子邮件的同步方法,其特征在于,用于进行电子邮件客户端中的邮件同步,所述方法包括:
所述电子邮件客户端向第二服务器发送携带第一标识的第一邮件;
所述电子邮件客户端向第一服务器发送用户身份标识UID查询命令,所述UID查询命令中携带有所述第一标识,所述第一标识是所述电子邮件客户端为第一邮件分配的,用于唯一标识所述第一邮件的邮件标识,所述UID查询命令用于查询邮件标识与所述第一标识相同的邮件的UID;
其中,所述第一服务器中已保存的第一邮件是所述第二服务器向所述第一服务器发送的;
所述第一服务器响应于所述UID查询命令,从所述第一服务器保存的邮件中,查找邮件标识与所述第一标识相同的邮件的UID;
所述第一服务器根据查询结果,向所述电子邮件客户端发送第一UID查询响应或者第二UID查询响应,所述第一UID查询响应中携带查找到的邮件的UID,所述第二UID查询响应用于指示所述第一服务器中未保存所述第一邮件;
所述电子邮件客户端根据所述第一UID查询响应确定所述第一服务器中已保存所述第一邮件,或者根据所述第二UID查询响应确定所述第一服务器中未保存所述第一邮件;
当所述第一服务器无法识别所述UID查询命令时,所述第一服务器向所述电子邮件客户端发送所述第二UID查询响应;
所述电子邮件客户端在接收到所述第一服务器发送的所述第二UID查询响应后,向所述第一服务器发送标识查询请求,所述标识查询请求用于获取所述第一服务器保存的N个第二邮件的邮件标识,所述N个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;
所述第一服务器响应于所述标识查询请求,向所述电子邮件客户端发送标识查询响应,所述标识查询响应中携带有所述N个第二邮件的邮件标识;
所述电子邮件客户端响应于所述标识查询响应,依次遍历所述N个第二邮件,查找所述邮件标识与所述第一标识相同的邮件;
如果查找到所述邮件标识与所述第一标识相同的邮件,所述电子邮件客户端确定所述第一服务器中已保存所述第一邮件;
如果未查找到所述邮件标识与所述第一标识相同的邮件,所述电子邮件客户端确定所述第一服务器中未保存所述第一邮件。
7.根据权利要求6所述的方法,其特征在于,所述第一服务器响应于所述UID查询命令,从所述第一服务器保存的邮件中,查找邮件标识与所述第一标识相同的邮件的UID,包括:
所述第一服务器响应于所述UID查询命令,从所述第一服务器保存的M个第二邮件中,查找邮件标识与所述第一标识相同的邮件的UID,M≥1;
其中,所述M个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后M位的邮件。
8.一种电子邮件的同步方法,其特征在于,用于进行电子邮件客户端中的邮件同步,所述方法包括:
所述电子邮件客户端向第二服务器发送携带第一标识的第一邮件;
所述电子邮件客户端向第一服务器发送标识查询请求,所述标识查询请求用于获取所述第一服务器保存的N个第二邮件的邮件标识,所述N个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;
其中,所述第一服务器中已保存的第一邮件是所述第二服务器向所述第一服务器发送的;
所述第一服务器响应于所述标识查询请求,向所述电子邮件客户端发送标识查询响应,所述标识查询响应中携带有所述N个第二邮件的邮件标识;
所述电子邮件客户端响应于所述标识查询响应,依次遍历所述N个第二邮件,查找所述邮件标识与所述第一标识相同的邮件;
如果查找到所述邮件标识与所述第一标识相同的邮件,所述电子邮件客户端确定所述第一服务器中已保存所述第一邮件;
如果未查找到所述邮件标识与所述第一标识相同的邮件,所述电子邮件客户端确定所述第一服务器中未保存所述第一邮件。
9.一种终端,其特征在于,所述终端中安装有电子邮件客户端,所述终端包括:处理器、存储器、收发器和显示器;所述存储器、所述显示器、所述收发器与所述处理器耦合,所述存储器用于存储计算机程序代码以及所述电子邮件客户端的相关数据,所述显示器用于显示所述电子邮件客户端的界面,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,
所述收发器,还用于向第二服务器发送携带第一标识的第一邮件;
所述处理器,用于根据所述第一标识,确定第一服务器中是否保存所述第一邮件,所述第一标识是所述电子邮件客户端为所述第一邮件分配的,用于唯一标识所述第一邮件的邮件标识;其中,所述第一服务器中已保存的第一邮件是所述第二服务器向所述第一服务器发送的;
所述收发器,还用于当所述处理器确定所述第一服务器中已保存所述第一邮件时,不向所述第一服务器发送所述第一邮件,所述第一邮件中携带所述第一标识;
所述收发器,还用于当所述处理器确定所述第一服务器中未保存所述第一邮件时,向所述第一服务器发送所述第一邮件,所述第一邮件中携带所述第一标识;
所述收发器,还用于向所述第一服务器发送用户身份标识UID查询命令,所述UID查询命令中携带有所述第一标识;
所述收发器,还用于接收所述第一服务器发送的第二UID查询响应所述第二UID查询响应用于指示所述第一服务器中未保存所述第一邮件;
所述收发器,还用于在接收所述第一服务器发送的所述第二UID查询响应之后,向所述第一服务器发送标识查询请求,所述标识查询请求用于获取所述第一服务器保存的N个第二邮件的邮件标识,所述N个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;接收所述第一服务器发送的标识查询响应,所述标识查询响应中携带有所述N个第二邮件的邮件标识;
所述处理器,还用于依次遍历所述N个第二邮件,查找所述邮件标识与所述第一标识相同的邮件;如果查找到所述邮件标识与所述第一标识相同的邮件,确定所述第一服务器中已保存所述第一邮件;如果未查找到所述邮件标识与所述第一标识相同的邮件,确定所述第一服务器中未保存所述第一邮件。
10.根据权利要求9所述的终端,其特征在于,所述UID查询命令用于查询邮件标识与所述第一标识相同的邮件的UID;
所述收发器,还用于接收所述第一服务器发送的第一UID查询响应,所述第一UID查询响应用于指示所述第一服务器中已保存所述第一邮件;
所述处理器,还用于根据所述收发器接收的所述第一UID查询响应确定所述第一服务器中已保存所述第一邮件,或者根据所述收发器接收的所述第二UID查询响应确定所述第一服务器中未保存所述第一邮件。
11.根据权利要求9所述的终端,其特征在于,
所述收发器,还用于向所述第一服务器发送标识查询请求,所述标识查询请求用于获取所述第一服务器保存的N个第二邮件的邮件标识,所述N个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;接收所述第一服务器发送的标识查询响应,所述标识查询响应中携带有所述N个第二邮件的邮件标识;
所述处理器,还用于依次遍历所述N个第二邮件的邮件标识,查找所述邮件标识与所述第一标识相同的邮件;如果查找到所述邮件标识与所述第一标识相同的邮件,确定所述第一服务器中已保存所述第一邮件;如果未查找到所述邮件标识与所述第一标识相同的邮件,确定所述第一服务器中未保存所述第一邮件。
12.根据权利要求9-11中任一项所述的终端,其特征在于,所述第一标识是所述电子邮件客户端在创建所述第一邮件时,为所述第一邮件分配的;或者,所述第一标识是所述电子邮件客户端在发送所述第一邮件时,为所述第一邮件分配的。
13.根据权利要求9-11中任一项所述的终端,其特征在于,所述处理器,还用于:
在所述收发器接收到所述第一服务器发送的第一消息时,根据所述第一标识,确定所述第一服务器中是否保存所述第一邮件,所述第一消息用于指示所述第一邮件发送成功;或者,在所述收发器向所述第一服务器发送所述第一邮件之前,根据所述第一标识,确定所述第一服务器中是否保存所述第一邮件。
14.一种电子邮件的同步系统,其特征在于,用于进行电子邮件客户端中的邮件同步,所述系统包括:所述电子邮件客户端和第一服务器;
所述电子邮件客户端,用于向第二服务器发送携带第一标识的第一邮件;向第一服务器发送用户身份标识UID查询命令,所述UID查询命令中携带有第一标识,所述第一标识是所述电子邮件客户端为第一邮件分配的,用于唯一标识所述第一邮件的邮件标识,所述UID查询命令用于查询邮件标识与所述第一标识相同的邮件的UID;其中,所述第一服务器中已保存的第一邮件是所述第二服务器向所述第一服务器发送的;
所述第一服务器,用于响应于所述UID查询命令,从所述第一服务器保存的邮件中,查找邮件标识与所述第一标识相同的邮件的UID;根据查询结果,向所述电子邮件客户端发送第一UID查询响应或者第二UID查询响应,所述第一UID查询响应中携带查找到的邮件的UID,所述第二UID查询响应用于指示所述第一服务器中未保存所述第一邮件;
所述电子邮件客户端,还用于根据所述第一UID查询响应确定所述第一服务器中已保存所述第一邮件,或者根据所述第二UID查询响应确定所述第一服务器中未保存所述第一邮件;
所述第一服务器,还用于当所述第一服务器无法识别所述UID查询命令时,向所述电子邮件客户端发送所述第二UID查询响应;
所述电子邮件客户端,还用于在接收到所述第一服务器发送的所述第二UID查询响应后,向所述第一服务器发送标识查询请求,所述标识查询请求用于获取所述第一服务器保存的N个第二邮件的邮件标识,所述N个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;
所述第一服务器,还用于响应于所述标识查询请求,向所述电子邮件客户端发送标识查询响应,所述标识查询响应中携带有所述N个第二邮件的邮件标识;
所述电子邮件客户端,还用于响应于所述标识查询响应,依次遍历所述N个第二邮件,查找所述邮件标识与所述第一标识相同的邮件;如果查找到所述邮件标识与所述第一标识相同的邮件,确定所述第一服务器中已保存所述第一邮件;如果未查找到所述邮件标识与所述第一标识相同的邮件,确定所述第一服务器中未保存所述第一邮件。
15.根据权利要求14所述的系统,其特征在于,所述第一服务器,还用于响应于所述UID查询命令,从所述第一服务器保存的M个第二邮件中,查找邮件标识与所述第一标识相同的邮件的UID,M≥1;
其中,所述M个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后M位的邮件。
16.一种电子邮件的同步系统,其特征在于,用于进行电子邮件客户端中的邮件同步,所述系统包括:
所述电子邮件客户端,用于向第二服务器发送携带第一标识的第一邮件;向第一服务器发送标识查询请求,所述标识查询请求用于获取所述第一服务器保存的N个第二邮件的邮件标识,所述N个第二邮件是所述第一服务器所保存的邮件中,按照邮件保存时间的先后顺序,排列在后N位的邮件,N≥1;其中,所述第一服务器中已保存的第一邮件是所述第二服务器向所述第一服务器发送的;
所述第一服务器,用于响应于所述标识查询请求,向所述电子邮件客户端发送标识查询响应,所述标识查询响应中携带有所述N个第二邮件的邮件标识;
所述电子邮件客户端,还用于响应于所述标识查询响应,依次遍历所述N个第二邮件,查找所述邮件标识与所述第一标识相同的邮件;如果查找到所述邮件标识与所述第一标识相同的邮件,确定所述第一服务器中已保存所述第一邮件;如果未查找到所述邮件标识与所述第一标识相同的邮件,确定所述第一服务器中未保存所述第一邮件。
17.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行如权利要求1-8中任一项中所述电子邮件客户端执行的电子邮件的同步方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017109318155 | 2017-10-09 | ||
CN201710931815 | 2017-10-09 | ||
PCT/CN2017/106194 WO2019071617A1 (zh) | 2017-10-09 | 2017-10-13 | 一种电子邮件的同步方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111095877A CN111095877A (zh) | 2020-05-01 |
CN111095877B true CN111095877B (zh) | 2022-04-22 |
Family
ID=66101264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780094850.4A Active CN111095877B (zh) | 2017-10-09 | 2017-10-13 | 一种电子邮件的同步方法及终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111095877B (zh) |
WO (1) | WO2019071617A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124925B (zh) * | 2020-08-25 | 2023-05-12 | 华为技术有限公司 | 一种电子邮件的同步方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098313A (zh) * | 2006-06-30 | 2008-01-02 | 华为技术有限公司 | 一种邮件转发方法及系统 |
US7788576B1 (en) * | 2006-10-04 | 2010-08-31 | Trend Micro Incorporated | Grouping of documents that contain markup language code |
CN101009516B (zh) * | 2006-01-26 | 2011-05-04 | 华为技术有限公司 | 一种进行数据同步的方法、系统及装置 |
CN105978786A (zh) * | 2016-04-19 | 2016-09-28 | 乐视控股(北京)有限公司 | 邮件存储方法和装置 |
CN107104889A (zh) * | 2017-07-06 | 2017-08-29 | 青岛海信移动通信技术股份有限公司 | 一种基于imap协议的草稿邮件同步方法、装置和终端 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100504441B1 (ko) * | 2004-08-17 | 2005-07-28 | 엔에이치엔(주) | 영구 메일 서비스 제공 방법 및 시스템 |
US9166941B2 (en) * | 2007-04-24 | 2015-10-20 | Microsoft Technology Licensing, Llc | Synchronizing email messages between external and local email servers and/or a wireless device |
CN103595615B (zh) * | 2012-08-15 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 电子邮件的发送和接收方法、终端 |
CN104537516A (zh) * | 2014-11-21 | 2015-04-22 | 北京国信冠群技术有限公司 | 一种新型电子邮件系统限制邮件附件只读的系统及方法 |
-
2017
- 2017-10-13 WO PCT/CN2017/106194 patent/WO2019071617A1/zh active Application Filing
- 2017-10-13 CN CN201780094850.4A patent/CN111095877B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009516B (zh) * | 2006-01-26 | 2011-05-04 | 华为技术有限公司 | 一种进行数据同步的方法、系统及装置 |
CN101098313A (zh) * | 2006-06-30 | 2008-01-02 | 华为技术有限公司 | 一种邮件转发方法及系统 |
US7788576B1 (en) * | 2006-10-04 | 2010-08-31 | Trend Micro Incorporated | Grouping of documents that contain markup language code |
CN105978786A (zh) * | 2016-04-19 | 2016-09-28 | 乐视控股(北京)有限公司 | 邮件存储方法和装置 |
CN107104889A (zh) * | 2017-07-06 | 2017-08-29 | 青岛海信移动通信技术股份有限公司 | 一种基于imap协议的草稿邮件同步方法、装置和终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111095877A (zh) | 2020-05-01 |
WO2019071617A1 (zh) | 2019-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108702318B (zh) | 一种rcs通信方法及设备 | |
US10958459B2 (en) | Method and apparatus for processing group chat message | |
EP2757758B1 (en) | Content sharing method and apparatus | |
CN109716826B (zh) | 接入方法、网络设备、终端设备和amf设备 | |
CN108702602B (zh) | 分享图像的方法、电子设备及系统 | |
CN111052780B (zh) | Sim卡鉴权方法及终端 | |
KR102092057B1 (ko) | 전자 장치의 위치 정보 공유 방법 및 장치 | |
CN104243517A (zh) | 不同终端之间的内容分享方法及装置 | |
US20160269286A1 (en) | Method and apparatus for transmitting data in network system | |
CN104168175A (zh) | 即时通讯中的消息群发方法及终端 | |
JP2018529138A (ja) | ピクチャ結合方法、端末、及びピクチャ結合システム | |
CN103294515A (zh) | 一种获取应用程序的方法、装置和系统 | |
CN103596145A (zh) | 一种自动回复消息的方法、装置和终端设备 | |
WO2018166202A1 (zh) | 网络定位方法、计算机设备及非易失性可读存储介质 | |
US8775404B1 (en) | Dynamic populating of contact lists with additional communication-application user identifiers | |
WO2015043163A1 (en) | Method and apparatus for inputting account information | |
CN111684827B (zh) | 一种补充业务的设置方法及设备 | |
CN110572508B (zh) | 通讯录同步方法、装置、存储介质及电子设备 | |
CN106020945B (zh) | 快捷项添加方法及装置 | |
CN106503023B (zh) | 提示附近好友的方法及装置 | |
CN111095877B (zh) | 一种电子邮件的同步方法及终端 | |
CN104142994A (zh) | 一种数据列表获取的方法、终端及系统 | |
CN104010269A (zh) | 在通信终端中发送文件的方法和装置 | |
CN107483468B (zh) | 获取配置信息的方法、装置和系统 | |
CN107145572B (zh) | 数据处理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |