黎棟材
背景
當(dāng)在outlook或者OWA上使用郵箱時(shí),如果之前給某個(gè)用戶發(fā)送過郵件,則會有自動(dòng)完成列表,在你輸入收件人首字母時(shí)便會在下方提示相關(guān)收件人,方便用戶發(fā)送郵件,而outlook與OWA的自動(dòng)完成列表是不一樣的,outlook隨著版本的不同也有不同,OWA的自動(dòng)完成列表則是儲存在用戶郵箱上的,本文章將會重點(diǎn)介紹如何獲取OWA的自動(dòng)完成列表記錄的時(shí)間戳。
實(shí)現(xiàn)過程
1. 在OWA界面輸入首字母時(shí)會有建議收件人,即為自動(dòng)完成列表;
2. 新建一個(gè)新的收件人并發(fā)送郵件,這樣我們就有了該收件人的自動(dòng)完成列表;
3. 使用2010以上版本的outlook打開該郵箱,并設(shè)置為非緩存、模式;
4. 關(guān)閉outlook;
5. 打開MFCMAPI工具(下載地址:http://mfcmapi.codeplex.com/releases/view/617103?RateReview=true);
6. 在session中選擇logon并打開該郵箱的outlook配置文件;
7. 打開對應(yīng)郵箱的文件,右鍵root container選擇open associated contents table;
8. 之后選擇message class為IPM.Configuration.OWA.Autocompletecache的內(nèi)容項(xiàng);
9. 在該內(nèi)容下選擇PR_ROAMING_XMLSTREAM,PidTagRoamingXmlStream,打開之后在text框內(nèi)即為OWA緩存的收件人自動(dòng)完成列表;
10. 在上面的text內(nèi)容框里搜索里面剛生成的autocomplete@test.com的收件人記錄,即為該收件人的信息
<entry displayName="autocomplete@test.com" smtpAddr="autocomplete@test.com" routAddr="autocomplete@test.com" routType="SMTP" addrOrig="3" recipFlags="0" usage="6" dateTimeTicks="636013847200343063" session="0" sessionFlag="1" cacheEntryId="1158869385">
11. 可以轉(zhuǎn)譯其中的dateTimeTicks時(shí)間記錄,可以獲取該記錄生成的具體時(shí)間,可以在網(wǎng)站http://tickstodatetime.com/轉(zhuǎn)換為更人性化的時(shí)間(對于北京時(shí)間需要加8小時(shí));
12. 該時(shí)間與我發(fā)送測試郵件的時(shí)間戳一致,即為該記錄的生成時(shí)間。
備注
MFCMAPI為利用MAPI端口的一個(gè)outlook開發(fā)工具,有許多功能可以實(shí)現(xiàn),下面介紹如何隱藏或者顯示某些outlook中的文件夾;
1. 在某個(gè)郵箱文件夾查看其屬性PR_ATTR_HIDDEN,PidTagAttributeHidden,ptagAttrHidden,若其值為false,即為該文件夾顯示;
2. 我們將值的選項(xiàng)改為True(即勾上Boolean);