本申請(qǐng)涉及電子郵件領(lǐng)域,尤其涉及一種基于imap協(xié)議的草稿郵件同步方法、裝置和終端。
背景技術(shù):
隨著智能手機(jī)、平板電腦等移動(dòng)終端設(shè)備的廣泛普及,基于移動(dòng)終端的電子郵箱業(yè)務(wù)也得以廣泛應(yīng)用。電子郵箱用戶在移動(dòng)終端設(shè)備上即可完成電子郵件的查收、閱讀、撰寫、回復(fù)以及轉(zhuǎn)發(fā),極大提高了用戶的工作和生活效率。
圖1是一種典型的電子郵件的網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)示意圖。如圖1所示,電子郵件的網(wǎng)絡(luò)系統(tǒng)包括多個(gè)郵件服務(wù)器以及與各個(gè)郵件服務(wù)器連接的多個(gè)終端設(shè)備(如pc機(jī)、移動(dòng)手機(jī)以及ipad等)。終端設(shè)備既可以是郵件的發(fā)送端,也可以是郵件的接收端;郵件服務(wù)器既可以作為發(fā)送端服務(wù)器,也可以作為接收端服務(wù)器。電子郵件的收發(fā)過程如下:作為發(fā)送端的終端設(shè)備通過smtp協(xié)議(簡單郵件傳輸協(xié)議,英文全稱:simplemailtransferprotocol)將郵件發(fā)送至發(fā)送端服務(wù)器,發(fā)送端服務(wù)器再通過smtp協(xié)議將郵件發(fā)送至接收端服務(wù)器,作為接收端的pc終端可以通過pop協(xié)議(郵局協(xié)議,英文全稱:postofficeprotocol)或者imap協(xié)議(internet郵件訪問協(xié)議,英文全稱:internetmailaccessprotocol)讀取存儲(chǔ)于接收端服務(wù)器的郵件,或者,與接收端服務(wù)器相連的郵件轉(zhuǎn)發(fā)服務(wù)器(圖中部分郵件轉(zhuǎn)發(fā)服務(wù)器未示出)將接收端服務(wù)器接收到的郵件通過pushmail(郵件推送)技術(shù)實(shí)時(shí)推送給接收端的移動(dòng)終端,從而實(shí)現(xiàn)電子郵件的發(fā)送和接收。
目前,當(dāng)移動(dòng)終端中郵件客戶端采用imap協(xié)議時(shí),通常只將待發(fā)送的電子郵件同步至郵件服務(wù)器的緩存中,而草稿郵件無法在終端設(shè)備與郵件服務(wù)器之間進(jìn)行同步,由此帶來以下問題:移動(dòng)終端無法同步上傳編輯好的草稿郵件,也無法同步下載其他終端設(shè)備(如網(wǎng)頁版郵箱、其它移動(dòng)終端的郵件客戶端等)中的草稿郵件來繼續(xù)處理,這無疑給移動(dòng)終端的電子郵箱用戶造成了很大的困擾。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┝艘环N基于imap協(xié)議的草稿郵件同步方法、裝置和終端,能夠?qū)⒁苿?dòng)終端中的草稿郵件同步上傳至郵件服務(wù)器,且能夠?qū)⑵渌K端設(shè)備中的草稿郵件同步下載至移動(dòng)終端。
第一方面,本申請(qǐng)?zhí)峁┝艘环N基于imap協(xié)議的草稿郵件同步方法,應(yīng)用于移動(dòng)終端,所述方法包括:
當(dāng)移動(dòng)終端中待上傳狀態(tài)的草稿郵件上傳至郵件服務(wù)器時(shí),將郵件服務(wù)器返回的草稿郵件的郵件標(biāo)識(shí)符存儲(chǔ)于第一列表;
獲取郵件服務(wù)器中存儲(chǔ)的草稿郵件的郵件標(biāo)識(shí)符,且將所述郵件標(biāo)識(shí)符存儲(chǔ)于第二列表;
確定目標(biāo)郵件標(biāo)識(shí)符,所述目標(biāo)郵件標(biāo)識(shí)符存儲(chǔ)于第二列表,而未存儲(chǔ)于第一列表;
將與所述目標(biāo)郵件標(biāo)識(shí)符對(duì)應(yīng)的草稿郵件從所述郵件服務(wù)器下載至移動(dòng)終端。
第二方面,本申請(qǐng)還提供了一種基于imap協(xié)議的草稿郵件的同步裝置,應(yīng)用于移動(dòng)終端,所述裝置包括:
第一存儲(chǔ)模塊,用于當(dāng)移動(dòng)終端中待上傳狀態(tài)的草稿郵件上傳至郵件服務(wù)器時(shí),將郵件服務(wù)器返回的草稿郵件的郵件標(biāo)識(shí)符存儲(chǔ)于第一列表;
第二存儲(chǔ)模塊,用于獲取郵件服務(wù)器中存儲(chǔ)的草稿郵件的郵件標(biāo)識(shí)符,且將所述郵件標(biāo)識(shí)符存儲(chǔ)于第二列表;
確定模塊,用于確定目標(biāo)郵件標(biāo)識(shí)符,所述目標(biāo)郵件標(biāo)識(shí)符存儲(chǔ)于第二列表,而未存儲(chǔ)于第一列表;
同步模塊,用于將與所述目標(biāo)郵件標(biāo)識(shí)符對(duì)應(yīng)的草稿郵件從所述郵件服務(wù)器下載至移動(dòng)終端。
第三方面,本申請(qǐng)還提供了一種終端設(shè)備,所述終端設(shè)備包括上述第二方面所述同步裝置。
本申請(qǐng)的有益效果如下:
本申請(qǐng)?zhí)峁┝艘环N基于imap協(xié)議的草稿郵件同步方法、裝置和終端,當(dāng)移動(dòng)終端中待上傳狀態(tài)的草稿郵件上傳至郵件服務(wù)器時(shí),將郵件服務(wù)器返回的草稿郵件的郵件標(biāo)識(shí)符存儲(chǔ)于第一列表;再將郵件服務(wù)器中存儲(chǔ)的草稿郵件的郵件標(biāo)識(shí)符存儲(chǔ)于第二列表;然后確定存儲(chǔ)于第二列表、而未存儲(chǔ)于第一列表的目標(biāo)郵件標(biāo)識(shí)符;進(jìn)而將與目標(biāo)郵件標(biāo)識(shí)符對(duì)應(yīng)的草稿郵件從所述郵件服務(wù)器下載至移動(dòng)終端。這樣,既能夠?qū)⒁苿?dòng)終端中的草稿郵件同步上傳至郵件服務(wù)器,且能夠?qū)⑵渌K端設(shè)備中的草稿郵件同步下載至移動(dòng)終端,以便繼續(xù)查看或編輯該下載的草稿郵件,提高用戶體驗(yàn)。
附圖說明
為了更清楚地說明本申請(qǐng)的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為一種典型的電子郵件的網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)示意圖;
圖2為本申請(qǐng)實(shí)施例一提供的一種基于imap協(xié)議的草稿郵件同步方法的流程圖;
圖3為本申請(qǐng)實(shí)施例二提供的一種基于imap協(xié)議的草稿郵件同步方法的流程圖;
圖4為本申請(qǐng)實(shí)施例二提供的一種郵件客戶端草稿箱的示意圖;
圖5為本申請(qǐng)實(shí)施例二提供的步驟s201的流程圖;
圖6為本申請(qǐng)實(shí)施例二提供的步驟s2013的流程圖;
圖7為本申請(qǐng)實(shí)施例二提供的步驟s2011的流程圖;
圖8為本申請(qǐng)實(shí)施例二提供的移動(dòng)終端創(chuàng)建草稿文件夾方法的流程圖;
圖9為本申請(qǐng)實(shí)施例三提供的一種基于imap協(xié)議的草稿郵件的同步裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本申請(qǐng)中提供的草稿郵件的同步方法建立在imap協(xié)議的基礎(chǔ)上,利用imap協(xié)議的相關(guān)命令,實(shí)現(xiàn)移動(dòng)終端與郵件服務(wù)器之間的通信。本申請(qǐng)通過以上方法能夠解決移動(dòng)終端的草稿郵件無法與郵件服務(wù)器同步的技術(shù)問題,以便電子郵箱用戶在不同終端設(shè)備上操作草稿郵件。下面結(jié)合附圖對(duì)本申請(qǐng)?zhí)峁┑牟莞遴]件的同步方法進(jìn)行詳細(xì)說明。
參見圖2,為本申請(qǐng)實(shí)施例一提供的一種基于imap協(xié)議的草稿郵件同步方法的流程圖。由圖2可見,包括如下步驟:
步驟s101:當(dāng)移動(dòng)終端中待上傳狀態(tài)的草稿郵件上傳至郵件服務(wù)器時(shí),將郵件服務(wù)器返回的草稿郵件的郵件標(biāo)識(shí)符存儲(chǔ)于第一列表。
郵件服務(wù)器在接收到終端設(shè)備上傳的草稿郵件時(shí),會(huì)為每一封草稿郵件創(chuàng)建對(duì)應(yīng)的郵件標(biāo)識(shí)符(uid號(hào)),并將郵件標(biāo)識(shí)符返回相應(yīng)的終端設(shè)備。每一個(gè)所述郵件標(biāo)識(shí)符唯一對(duì)應(yīng)郵件服務(wù)器中的一封草稿郵件,終端設(shè)備能夠根據(jù)郵件標(biāo)識(shí)符標(biāo)識(shí)已上傳至郵件服務(wù)器的草稿郵件。因此,移動(dòng)終端草稿文件夾中郵件標(biāo)識(shí)符對(duì)應(yīng)的草稿郵件均為已同步至郵件服務(wù)器的草稿郵件。移動(dòng)終端將提取出來的郵件標(biāo)識(shí)符存儲(chǔ)于第一列表(localmessageidarray列表)中。
步驟s102:獲取郵件服務(wù)器中存儲(chǔ)的草稿郵件的郵件標(biāo)識(shí)符,且將所述郵件標(biāo)識(shí)符存儲(chǔ)于第二列表。
imap協(xié)議中的郵件標(biāo)識(shí)符搜索命令(uidsearch命令)用于獲取郵件服務(wù)器上符合匹配條件的郵件標(biāo)識(shí)符,如果沒有匹配郵件則返回不帶uid號(hào)的search單詞。uidsearch命令攜帶有查詢條件參數(shù),查詢條件參數(shù)通常為明確查詢的關(guān)鍵字和值。本實(shí)施例中,移動(dòng)終端會(huì)向郵件服務(wù)器發(fā)送草稿郵件的uidsearch命令,uidsearch命令的查詢條件參數(shù)為草稿文件夾。郵件服務(wù)器在接收到移動(dòng)終端發(fā)送的攜帶有草稿文件夾查詢條件參數(shù)的uidsearch命令之后,會(huì)向移動(dòng)終端返回存儲(chǔ)于郵件服務(wù)器中的所有草稿郵件的郵件標(biāo)識(shí)符。移動(dòng)終端將接收到的郵件服務(wù)器中的草稿郵件的郵件標(biāo)識(shí)符存儲(chǔ)于本地?cái)?shù)據(jù)庫的第二列表(remotemessageidarray列表)中。
另外,本實(shí)施例中,移動(dòng)終端向郵件服務(wù)器發(fā)送草稿郵件的郵件標(biāo)識(shí)符搜索命令的觸發(fā)條件可以是移動(dòng)終端接收到的郵件同步命令。郵件同步命令可以是體現(xiàn)為客戶端的單獨(dú)設(shè)置的詢問命令,用于詢問電子郵件用戶是否需要同步郵件服務(wù)器的草稿郵件;也可以是電子郵件用戶打開客戶端的草稿箱時(shí)自動(dòng)生成的郵件同步命令,此時(shí),無需電子郵件用戶做出判斷。
步驟s103:確定目標(biāo)郵件標(biāo)識(shí)符。
通過遍歷第一列表和第二列表可以查找出存儲(chǔ)于第二列表,而未存儲(chǔ)于第一列表的郵件標(biāo)識(shí)符,本實(shí)施例將此郵件標(biāo)識(shí)符確定為目標(biāo)郵件標(biāo)識(shí)符。目標(biāo)郵件標(biāo)識(shí)符對(duì)應(yīng)的草稿郵件即為郵件服務(wù)器中,除移動(dòng)終端以外的其他終端設(shè)備上傳的草稿郵件,也就是移動(dòng)終端需要同步下載的草稿郵件。
步驟s104:將與所述目標(biāo)郵件標(biāo)識(shí)符對(duì)應(yīng)的草稿郵件從所述郵件服務(wù)器下載至移動(dòng)終端。
imap協(xié)議中的讀取命令(fetch命令)用于讀取郵件的文本信息,fetch命令攜帶有messageset參數(shù),messageset參數(shù)表示希望讀取的郵件標(biāo)識(shí)符列表。本實(shí)施例中,messageset參數(shù)為目標(biāo)郵件標(biāo)識(shí)符的列表。郵件服務(wù)器接收到目標(biāo)郵件標(biāo)識(shí)符列表的fetch命令之后,會(huì)向移動(dòng)終端返回與目標(biāo)郵件標(biāo)識(shí)符相對(duì)應(yīng)的草稿郵件,以便電子郵件用戶在移動(dòng)終端上繼續(xù)操作此草稿郵件。
本實(shí)施例既能夠?qū)⒁苿?dòng)終端中的草稿郵件同步上傳至郵件服務(wù)器,且能夠?qū)⑵渌K端設(shè)備中的草稿郵件同步下載至移動(dòng)終端,以便繼續(xù)查看或編輯該下載的草稿郵件,提高用戶體驗(yàn)。
但是,在某些情況下,電子郵件用戶可能會(huì)在不同的終端設(shè)備上反復(fù)編輯一封草稿郵件,例如,電子郵件用戶在郵件客戶端a上創(chuàng)建了一封草稿,編輯后選擇上傳郵件服務(wù)器,這是該封草稿郵件的初始版本v1;如果電子郵件用戶在郵件客戶端b上同步草稿箱,把v1版本的草稿同步到本地后繼續(xù)編輯該草稿郵件,編輯完成后作為原始草稿郵件的版本v2上傳郵件服務(wù)器,郵件服務(wù)器會(huì)將此草稿郵件存儲(chǔ)為一封新的草稿郵件。如果電子郵件用戶繼續(xù)在郵件客戶端c上同步草稿箱,該封草稿郵件的初始版本v1和版本v2都會(huì)同步到本地?cái)?shù)據(jù)庫。
基于以上情況,本申請(qǐng)實(shí)施例二提供了一種基于imap協(xié)議的草稿郵件的同步方法,本實(shí)施例將接收到的初始版本v1和版本v2做歸集處理,以實(shí)現(xiàn)草稿郵件在不同郵件客戶端上的版本追溯。參見圖3,為本申請(qǐng)實(shí)施例二提供的一種基于imap協(xié)議的草稿郵件同步方法的流程圖。由圖3可見,該方法包括如下步驟:
步驟s201:當(dāng)移動(dòng)終端中待上傳狀態(tài)的草稿郵件上傳至郵件服務(wù)器時(shí),將郵件服務(wù)器返回的草稿郵件的郵件標(biāo)識(shí)符存儲(chǔ)于第一列表。
步驟s202:獲取郵件服務(wù)器中存儲(chǔ)的草稿郵件的郵件標(biāo)識(shí)符,且將所述郵件標(biāo)識(shí)符存儲(chǔ)于第二列表。
步驟s203:確定目標(biāo)郵件標(biāo)識(shí)符。
步驟s204:將與所述目標(biāo)郵件標(biāo)識(shí)符對(duì)應(yīng)的草稿郵件從所述郵件服務(wù)器下載至移動(dòng)終端。
步驟s205:檢測(cè)移動(dòng)終端中是否存在至少兩封主題相同的草稿郵件。如果移動(dòng)終端中存在至少兩封主題相同的草稿郵件,則執(zhí)行步驟s206。
步驟s206:將所述至少兩封主題相同的草稿郵件按照上傳時(shí)間的先后順序存儲(chǔ)于臨時(shí)文件夾,所述臨時(shí)文件夾以存儲(chǔ)的草稿郵件的主題命名。
本實(shí)施例為了便于電子郵件用戶追溯草稿郵件的不同版本,而將主題相同的草稿郵件做歸集處理,即將至少兩封主題相同的草稿郵件存儲(chǔ)于某一臨時(shí)文件夾中,該臨時(shí)文件夾在郵件客戶端上體現(xiàn)為以該草稿郵件的主題命名的一條郵件信息。另外,為了便于電子郵件用戶搜索、查看,臨時(shí)文件夾中的草稿郵件按照上傳至郵件服務(wù)器的時(shí)間先后順序進(jìn)行存儲(chǔ)。
請(qǐng)參考圖4,為本申請(qǐng)實(shí)施例二提供的一種郵件客戶端草稿箱的示意圖。在圖4所示的草稿郵件列表中,左側(cè)黑色方框內(nèi)的郵件信息實(shí)際上包含有兩封草稿郵件,是主題相同的草稿郵件的一種歸集形式。右側(cè)黑色方框部分為此郵件信息的展開形式,電子郵件用戶可以從以上兩封草稿郵件中任意選擇一封草稿郵件進(jìn)行進(jìn)一步處理。當(dāng)然,本申請(qǐng)其他實(shí)施例中,也可以只保留上傳時(shí)間最晚的一封草稿郵件,以避免終端設(shè)備的存儲(chǔ)空間有限時(shí),版本過多的草稿郵件額外占用其存儲(chǔ)空間。
請(qǐng)參考圖5,為本申請(qǐng)實(shí)施例二提供的步驟s201的流程圖。由圖5可見,步驟s201還可以包括如下步驟:
步驟s2011:在移動(dòng)終端保存或更新草稿郵件之后,將移動(dòng)終端的草稿文件夾中需要同步的草稿郵件設(shè)置為待上傳狀態(tài)。
移動(dòng)終端的草稿文件夾為移動(dòng)終端數(shù)據(jù)庫中用于存放草稿郵件的文件夾,本實(shí)施例中移動(dòng)終端的草稿文件夾為與相應(yīng)郵件服務(wù)器中的草稿文件夾對(duì)應(yīng)設(shè)置的可同步文件夾。只有當(dāng)移動(dòng)終端檢測(cè)到其草稿文件夾的文件夾屬性為可同步文件夾時(shí),才允許執(zhí)行文件夾的同步操作,將移動(dòng)終端的草稿文件夾與郵件服務(wù)器的草稿文件夾進(jìn)行同步。
另外,本實(shí)施例可以通過設(shè)置草稿郵件的上傳屬性,來實(shí)現(xiàn)草稿郵件上傳狀態(tài)的設(shè)定。草稿郵件的上傳屬性包括true和false兩種類型,當(dāng)移動(dòng)終端檢測(cè)到草稿郵件的上傳屬性標(biāo)記為true時(shí),即可判定該草稿郵件為待上傳狀態(tài),從而通過進(jìn)一步的同步操作,將處于待上傳狀態(tài)的草稿郵件同步至郵件服務(wù)器;當(dāng)移動(dòng)終端檢測(cè)到草稿郵件的上傳屬性標(biāo)記為false時(shí),即能夠判定該草稿郵件為非上傳狀態(tài),不需要對(duì)該草稿郵件進(jìn)行同步。
本實(shí)施例中,為了區(qū)分草稿郵件的重要程度,移動(dòng)終端還可以通過重要標(biāo)識(shí)來區(qū)分普通草稿郵件和重要草稿郵件。重要標(biāo)識(shí)能夠在移動(dòng)終端的郵箱客戶端體現(xiàn)出來,具體可以為紅旗標(biāo)志、星狀標(biāo)志以及其他形狀和形式的標(biāo)志。電子郵箱用戶可以根據(jù)實(shí)際需要判定重要草稿郵件,比如,可以是需要在其他客戶端繼續(xù)編輯或者添加附件的處于待上傳狀態(tài)的草稿郵件,也可以是保密性較高的,只能夠在移動(dòng)終端編輯的草稿郵件。
步驟s2012:按照預(yù)設(shè)的同步頻率,檢測(cè)所述移動(dòng)終端的草稿文件夾中是否至少存在一封處于待上傳狀態(tài)的草稿郵件。如果所述移動(dòng)終端的草稿文件夾中至少存在一封處于待上傳狀態(tài)的草稿郵件,則執(zhí)行步驟s2073。
本實(shí)施例中,將同步頻率設(shè)置為實(shí)時(shí)同步,即持續(xù)監(jiān)測(cè)草稿郵件的上傳屬性,以縮短草稿郵件的同步周期。本申請(qǐng)中移動(dòng)終端與pc端最大的不同在于,移動(dòng)終端并不是實(shí)時(shí)在線的。通常情況下,只有在移動(dòng)終端用戶需要訪問網(wǎng)絡(luò)的時(shí)候才開啟數(shù)據(jù)業(yè)務(wù)服務(wù)(如gsm/gprs服務(wù)),而將存儲(chǔ)于移動(dòng)終端的草稿郵件同步至郵件服務(wù)器,無疑需要移動(dòng)終端處于在線狀態(tài),因此,為了達(dá)到實(shí)時(shí)同步的效果,需要移動(dòng)終端實(shí)時(shí)處于在線狀態(tài),容易過度消耗移動(dòng)終端的電量,并且容易產(chǎn)生額外的上網(wǎng)費(fèi)用。
在實(shí)際的應(yīng)用情境中,電子郵箱用戶可能在室外使用移動(dòng)終端編輯了一封草稿郵件,但需要返回室內(nèi),使用pc端添加文件較大的附件,這種情況下,草稿郵件同步的時(shí)效性要求通常不高。因此,本申請(qǐng)其他實(shí)施例中,移動(dòng)終端可以每隔一段時(shí)間遍歷一次草稿文件夾,檢測(cè)其中各封草稿郵件的上傳屬性,當(dāng)至少存在一封處于待上傳狀態(tài)的草稿郵件時(shí),再開啟數(shù)據(jù)業(yè)務(wù)服務(wù)上傳該草稿郵件。通過以上方式能夠在一定程度上避免上述實(shí)時(shí)同步帶來的諸多問題。另外,以上應(yīng)用情境只是示意性的舉例,并不限于此應(yīng)用情境。
步驟s2013:向所述郵件服務(wù)器發(fā)送郵件添加命令,以將所述處于待上傳狀態(tài)的草稿郵件同步至所述郵件服務(wù)器。
移動(dòng)終端在向郵件服務(wù)器發(fā)送郵件添加命令(append命令)之前,需要首先與郵件服務(wù)器建立tcp連接,在此基礎(chǔ)上進(jìn)行信息交互。imap協(xié)議中的append命令允許終端設(shè)備上載一個(gè)郵件到指定的郵件服務(wù)器文件夾中,本實(shí)施例通過append命令將移動(dòng)終端中處于待上傳狀態(tài)的草稿郵件同步至郵件服務(wù)器的草稿文件夾中。append命令中包含以上草稿郵件的屬性、創(chuàng)建日期/創(chuàng)建時(shí)間、郵件大小,以及具體的郵件數(shù)據(jù)(可包括郵件主題,郵件內(nèi)容等),郵件服務(wù)器接收到移動(dòng)終端發(fā)送的append命令之后,將append命令中包含的以上草稿郵件信息保存至草稿文件夾中,進(jìn)而移動(dòng)終端將需要下載的草稿郵件保存至本地?cái)?shù)據(jù)庫,以便進(jìn)行進(jìn)一步編輯或者其他處理,最終完成草稿郵件在不同終端的同步。
步驟s2014:將所述處于待上傳狀態(tài)的草稿郵件設(shè)置為非上傳狀態(tài)。
本實(shí)施例將完成同步的草稿郵件設(shè)置為非上傳狀態(tài),以免步驟s2012檢測(cè)到以上草稿郵件仍然處于待上傳狀態(tài)而觸發(fā)同步操作,導(dǎo)致草稿郵件重復(fù)上傳,造成不必要的網(wǎng)絡(luò)資源的浪費(fèi)。
此外,電子郵箱用戶在篩選草稿郵件時(shí),可能由于主題類似等原因,將已經(jīng)同步過的草稿郵件誤選為需要同步的草稿郵件,導(dǎo)致未經(jīng)任何操作的同一封草稿郵件被多次上傳,占用不必要的網(wǎng)絡(luò)資源和存儲(chǔ)空間。為避免以上情況的發(fā)生,本申請(qǐng)實(shí)施例二提供了另外一種基于imap協(xié)議的草稿郵件同步方法。參見圖6,為本申請(qǐng)實(shí)施例二提供的步驟s2013的流程圖。由圖6可見,步驟s2013包括如下步驟:
步驟s20131:檢測(cè)郵件列表中是否包含與所述處于待上傳狀態(tài)的草稿郵件相對(duì)應(yīng)的郵件標(biāo)識(shí)符。如果所述郵件列表中沒有包含與所述處于待上傳狀態(tài)的草稿郵件唯一對(duì)應(yīng)的郵件標(biāo)識(shí)符,則執(zhí)行步驟s20732。
郵件服務(wù)器在接收到移動(dòng)終端發(fā)送的append命令以后,從中提取草稿郵件的有效信息(草稿郵件的屬性、創(chuàng)建日期/創(chuàng)建時(shí)間、郵件大小,以及具體的郵件數(shù)據(jù)等),并將上述草稿郵件的有效信息對(duì)應(yīng)存儲(chǔ)于郵件服務(wù)器的草稿文件夾中。同時(shí),郵件服務(wù)器會(huì)為接收到的每一封草稿郵件創(chuàng)建相應(yīng)的郵件標(biāo)識(shí)符,并將相應(yīng)的郵件標(biāo)識(shí)符返回移動(dòng)終端,以便移動(dòng)終端標(biāo)識(shí)已同步至郵件服務(wù)器的草稿郵件。本實(shí)施例中的郵件標(biāo)識(shí)符為郵件的uid號(hào),uid號(hào)通常是用于唯一標(biāo)識(shí)郵件系統(tǒng)中郵件的32位證書,郵件服務(wù)器中每一封郵件均唯一對(duì)應(yīng)一個(gè)郵件標(biāo)識(shí)符,用以區(qū)別其他郵件。移動(dòng)終端在接收到郵件服務(wù)器返回的郵件標(biāo)識(shí)符以后,將其存貯于郵件列表中,郵件列表用于存儲(chǔ)各封草稿郵件對(duì)應(yīng)的郵件信息,這里的郵件信息可以包括上述草稿郵件的有效信息以及草稿郵件的標(biāo)識(shí)信息(如uid號(hào))。
進(jìn)一步的,檢測(cè)郵件列表中是否包含與所述處于待上傳狀態(tài)的草稿郵件相對(duì)應(yīng)的郵件標(biāo)識(shí)符,以確定對(duì)應(yīng)草稿郵件的同步記錄。
步驟s20132:向所述郵件服務(wù)器發(fā)送郵件添加命令。
如果郵件列表中沒有包含與處于待上傳狀態(tài)的草稿郵件唯一對(duì)應(yīng)的郵件標(biāo)識(shí)符,則表明此草稿郵件在此之前沒有上傳過郵件服務(wù)器,此時(shí),向郵件服務(wù)器發(fā)送郵件添加命令,這樣不會(huì)造成未經(jīng)任何操作的同一封草稿郵件重復(fù)上傳。
參見圖7,為本申請(qǐng)實(shí)施例二提供的步驟s2011的流程圖。由圖7可見,步驟s2011包括如下步驟:
步驟s20111:當(dāng)移動(dòng)終端處于保存或更新草稿郵件狀態(tài)時(shí),檢測(cè)是否接收到將所述草稿郵件同步至郵件服務(wù)器的指令。如果接收到將所述草稿郵件同步至郵件服務(wù)器的指令,則執(zhí)行步驟s20112。
步驟s20112:將所述草稿郵件設(shè)置為待上傳狀態(tài)。
本實(shí)施例在移動(dòng)終端處于保存或更新草稿郵件狀態(tài)時(shí),通過檢測(cè)保存或者更新的草稿郵件的同步命令,來確定該草稿郵件的上傳狀態(tài)。通過以上方式確定草稿郵件的上傳狀態(tài),能夠避免上述將沒有改動(dòng)的草稿郵件重復(fù)上傳的問題。另外,本實(shí)施例在草稿郵件保存或更新的同時(shí)確定其上傳狀態(tài),也就是草稿郵件發(fā)生改動(dòng)時(shí),其上傳狀態(tài)會(huì)隨之確定。移動(dòng)終端實(shí)時(shí)檢測(cè)到存在處于待上傳狀態(tài)的草稿郵件時(shí),觸發(fā)同步機(jī)制,以將此草稿郵件同步至郵件服務(wù)器,可見,本實(shí)施例確定草稿郵件上傳狀態(tài)的時(shí)間條件,有利于進(jìn)一步以縮短草稿郵件的同步周期。
在終端設(shè)備首次安裝郵件客戶端時(shí),首先需要在終端設(shè)備的本地?cái)?shù)據(jù)庫中創(chuàng)建草稿文件夾,并且建立終端設(shè)備中草稿文件夾與郵件服務(wù)器中草稿文件夾的對(duì)應(yīng)關(guān)系,以便后續(xù)將終端設(shè)備中處于待上傳狀態(tài)的草稿郵件同步至郵件服務(wù)器,以及,將郵件服務(wù)器中的草稿郵件下載至本地?cái)?shù)據(jù)庫進(jìn)行進(jìn)一步處理。針對(duì)移動(dòng)終端首次使用郵件客戶端的情況,參見圖8,為實(shí)施例二提供的移動(dòng)終端創(chuàng)建草稿文件夾方法的流程圖,具體的,在步驟s2011中在將移動(dòng)終端的草稿文件夾中需要同步的草稿郵件設(shè)置為待上傳狀態(tài)之前,實(shí)施例二還可以包括如下步驟:
步驟s2001:向相應(yīng)郵件服務(wù)器發(fā)送列目錄命令,以獲取所述郵箱服務(wù)器中的文件夾列表。
imap協(xié)議中的列目錄命令(list命令)用于列出郵件服務(wù)器中已有的文件夾,具體包括兩個(gè)參數(shù),第一個(gè)是郵箱路徑參數(shù)base,表示用戶登陸目錄;第二個(gè)參數(shù)是template,表示希望顯示的文件夾名稱。list命令可以包含起始的路徑位置和需要列出的文件夾所符合的特征。本實(shí)施例可以通過list命令列出郵件服務(wù)器中所包含的所有文件夾,其他實(shí)施例也可以通過template參數(shù)直接篩選出草稿文件夾。
在郵件服務(wù)器接收到移動(dòng)終端發(fā)送的list命令之后,會(huì)向移動(dòng)終端返回郵箱服務(wù)器中的文件夾列表,文件夾列表包括郵件服務(wù)器中各個(gè)文件夾對(duì)應(yīng)的文件夾信息。文件夾信息可以包括文件夾屬性、用于唯一標(biāo)識(shí)郵件服務(wù)器中文件夾的文件夾標(biāo)識(shí)符,以及文件夾在郵件服務(wù)器中的存儲(chǔ)路徑等信息。
步驟s2002:從所述文件夾列表中提取郵件服務(wù)器中草稿文件夾的文件夾信息。
文件夾信息包括文件夾屬性,本實(shí)施例可以文件夾屬性來識(shí)別草稿文件夾。具體的,草稿文件夾的文件夾屬性標(biāo)識(shí)為drafts,因此,可將文件夾屬性為drafts的文件夾確定為草稿文件夾,從而提取與草稿文件夾對(duì)應(yīng)的文件夾信息。
步驟s2003:在移動(dòng)終端中創(chuàng)建用于存儲(chǔ)草稿郵件的草稿文件夾,所述草稿文件夾中包括所述郵件服務(wù)器中草稿文件夾的文件夾信息。
本實(shí)施例中,通過步驟s2001至步驟s2003,建立了移動(dòng)終端中草稿文件夾與郵件服務(wù)器中草稿文件夾的對(duì)應(yīng)關(guān)系,以便后續(xù)終端設(shè)備與郵件服務(wù)器的同步操作。
本申請(qǐng)實(shí)施例三還提供了一種基于imap協(xié)議的草稿郵件的同步裝置,應(yīng)用于移動(dòng)終端。參見圖9,為本申請(qǐng)實(shí)施例三提供的一種基于imap協(xié)議的草稿郵件的同步裝置300的結(jié)構(gòu)示意圖。由圖9可見,同步裝置300包括:
第一存儲(chǔ)模塊301,用于當(dāng)移動(dòng)終端中待上傳狀態(tài)的草稿郵件上傳至郵件服務(wù)器時(shí),將郵件服務(wù)器返回的草稿郵件的郵件標(biāo)識(shí)符存儲(chǔ)于第一列表;
第二存儲(chǔ)模塊302,用于獲取郵件服務(wù)器中存儲(chǔ)的草稿郵件的郵件標(biāo)識(shí)符,且將所述郵件標(biāo)識(shí)符存儲(chǔ)于第二列表;
確定模塊303,用于確定目標(biāo)郵件標(biāo)識(shí)符,所述目標(biāo)郵件標(biāo)識(shí)符存儲(chǔ)于第二列表,而未存儲(chǔ)于第一列表;
同步模塊304,用于將與所述目標(biāo)郵件標(biāo)識(shí)符對(duì)應(yīng)的草稿郵件從所述郵件服務(wù)器下載至移動(dòng)終端。
此外,本申請(qǐng)還提供了一種終端設(shè)備,所述終端設(shè)備包括實(shí)施例三所述的同步裝置。
具體實(shí)現(xiàn)中,本發(fā)明還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其中,該計(jì)算機(jī)存儲(chǔ)介質(zhì)可存儲(chǔ)有程序,該程序執(zhí)行時(shí)可包括本發(fā)明提供的呼叫方法的各實(shí)施例中的部分或全部步驟。所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(英文:read-onlymemory,簡稱:rom)或隨機(jī)存儲(chǔ)記憶體(英文:randomaccessmemory,簡稱:ram)等。
本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例中的技術(shù)可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)。基于這樣的理解,本發(fā)明實(shí)施例中的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干命令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。