一种对Outlook客户端数据做备份及还原的方法技术

技术编号:37184904 阅读:5 留言:0更新日期:2023-04-20 22:49
本发明专利技术公开了一种对Outlook客户端数据做备份及还原的方法,包括以下步骤:步骤S1,获取office的安装位数,并生成备份程序;步骤S2,启动备份程序;步骤S3,获取邮箱数据的根目录信息,步骤S4,通过遍历根目录表;步骤S5,创建一个自定义的业务文件夹对象Mfolder;步骤S6,开始遍历步骤S4中得到的邮箱数据;步骤S7,获取业务文件夹对象Mfolder的数据;步骤S8,将邮件信息备份到本地。通过本发明专利技术中的方法,能够有效的对邮箱数据进行备份,防止数据丢失,并且通过本申请中的数据还原方法,能够从Outlook客户端正确的导出Outlook账户下的所有数据,并且导出的数据是能够方便用户查看的格式,并且能够将导出的数据还原到Outlook客户端。且能够将导出的数据还原到Outlook客户端。且能够将导出的数据还原到Outlook客户端。

【技术实现步骤摘要】
一种对Outlook客户端数据做备份及还原的方法


[0001]本专利技术属于计算机数据安全
,具体为一种对Outlook客户端数据做备份及还原的方法。

技术介绍

[0002]Outlook作为个人、企业的重要沟通工具,许多重要的数据都存储在Outlook当中,为了避免邮箱账户因为一些外部安全因素,或者来自自身的一些操作不当导致的数据丢失的情况,本专利技术解决了Outlook邮件客户端的数据安全问题,为客户端提供一种通过导出客户端邮件的方式备份客户端邮件办法。

技术实现思路

[0003]本专利技术的目的在于提供一种对Outlook客户端数据做备份及还原的方法,以解决
技术介绍
中提出的现有技术中,邮箱账户因为一些外部安全因素,或者自身的一些操作不当导致的数据丢失,存在恢复困难的问题。
[0004]为解决上述技术问题,本专利技术所采用的技术方案是:
[0005]一种对Outlook客户端数据做备份的方法,包括以下步骤:
[0006]步骤S1,通过查询注册表信息,获取office的安装位数,并生成与office安装位数相同的备份程序,备份程序用于和Outlook源数据进行交互;
[0007]步骤S2,启动备份程序,进行MAPI环境初始化,如果初始化成功则通过调用MAPILogonEx函数登录到Outlook系统,获得LPMAPISESSION用于数据通信;如果初始化不成功,则直接结束;
[0008]步骤S3,通过步骤S2中登陆时获得的LPMAPISESSION打开msg storage table获取邮箱数据的根目录信息,再通过调用LPMAPISESSION对象的函数GetMsgStoresTable,得到IMAPITable对象;
[0009]步骤S4,根据步骤S3中获取的根目录信息,通过调用IMAPITable对象的SetColumns函数设置查询条件,然后再调用QueryRows函数遍历根目录信息来获取所有的邮箱数据;
[0010]步骤S5,创建一个业务文件夹对象Mfolder,业务文件夹对象Mfolder用于对Outlook数据进行的业务封装;
[0011]步骤S6,开始遍历步骤S4中得到的邮箱数据,通过调用LPMAPISESSION对象的OpenMsgStorage函数打开邮箱对象LPMDB,然后调用邮箱对象LPMDB对象的OpenEntry函数获得邮箱根目录的文件夹对象LPMAPIFLODER,然后把文件夹对象LPMAPIFLODER和邮箱对象LPMDB传递给S5步骤创建的业务文件夹对象Mfolder用于后续进行数据交互操作;
[0012]步骤S7,备份程序获取业务文件夹对象Mfolder的数据;
[0013]步骤S8,将步骤S7中获取到的邮件信息备份到本地;完成将邮件信息备份到本地。
[0014]根据上述技术方案,步骤S2中,MAPI环境初始化具体为:通过调用MAPIInitialize
函数,该函数会返回一个返回码,根据返回码是否为S_OK来判断是否初始化成功,如果是则初始化成功,如果不是,则初始化失败。
[0015]根据上述技术方案,步骤S4中,遍历根目录信息来获取所有的邮箱数据具体为:
[0016]遍历根目录表时,将查询到的邮箱数据通过初始化时MAPI分配的LPMAPISESSION,通过LPMAPISESSION打开查询到的邮箱数据的存储对象,通过查询到的存储对象去获得ENTRY_ID,把ENTRY_ID作为参数去调用LPMAPISESSION对象的OpenMsgStore函数打开ENTRY_ID代表的邮箱存储对象LPMDB,得到所有的邮箱数据。
[0017]根据上述技术方案,步骤S7中,备份程序获取业务文件夹对象Mfolder的数据,具体包括:
[0018]步骤A1,首先,执行业务文件夹对象Mfolder的初始化操作,通过LPMAPIFOLDER对象的GetHierarchyTable函数打开业务文件夹对象Mfolder的子文件夹对象表,然后通过LPMAPIFOLDER对象的GetContentsTable函数打开业务文件夹对象Mfolder的内容表;
[0019]步骤A2,初始化完成后,分别遍历步骤A1中得到的子文件夹对象表和内容表获取邮件信息。
[0020]根据上述技术方案,步骤A2中,遍历子文件夹对象表为:
[0021]通过S3步骤得到的IMAPITABLE对象的SetColumns函数设置要查询的具体参数,设置PR_ENTRYID参数用来查询EntryID,
[0022]通过QueryRows函数进行查询得到EntryID,然后将EntryID作为参数调用LPMDB对象的OpenEntry函数得到子文件夹对象,将得到的子文件夹对象封装成业务文件夹对象Mfolder,完成子文件夹的遍历;
[0023]步骤A2中,遍历内容表具体为:
[0024]通过调用A1步骤获得的文件夹内容表IMAPITABLE对象的SetColumns函数设置要查询的具体参数,然后调用文件夹内容表IMAPITABLE对象的QueryRows函数查询后得到EntryID,然后将得到EntryID作为参数调用OpenEntry函数得到邮件对象LPMESSAGE。
[0025]根据上述技术方案,步骤S7中,子文件夹对象表保存着业务文件夹对象Mfolder的所有子文件夹信息。
[0026]根据上述技术方案,步骤S8中,邮件信息备份到本地具体包括以下步骤:
[0027]步骤B1,通过CreateILockBytesOnHGlobal函数创建一个ILock Bytes对象;
[0028]步骤B2,通过StgCreateDocfileOnILockBytes函数和OpenIMsg OnIStg函数创建以ILockBytes对象为存储底层的LPMESSAGE对象;
[0029]步骤B3,调用要读取的邮件对象的COPYTO函数复制给步骤B2创建的LPMESSAGE对象,再调用ILockBytes对象的ReadAt函数得到邮件的字节数据,把读取到的字节数据存入本地磁盘文件里。
[0030]根据上述技术方案,步骤B3中,把读取到的字节数据存入以.msg为后缀的本地磁盘文件里,完成将邮件信息备份到本地。
[0031]一种对Outlook客户端数据还原的方法,还原包括以下步骤:
[0032]步骤C1,创建一个以ILockBytes对象为底层存储机制的LPMESS AGE对象,具体步骤为:通过CreateILockBytesOnHGlobal函数创建一个ILockBytes对象,然后通过StgCreateDocfileOnILockBytes函数创建一个IStorage对象,通过IStorage对象为参数调
用OpenIMsg OnIStg函数得到一个LPMESSAGE对象;
[0033]步骤C2,通过调用C1步骤得到的ILoc本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对Outlook客户端数据做备份的方法,其特征在于:包括以下步骤:步骤S1,通过查询注册表信息,获取office的安装位数,并生成与office安装位数相同的备份程序,备份程序用于和Outlook源数据进行交互;步骤S2,启动备份程序,进行MAPI环境初始化,如果初始化成功则通过调用MAPILogonEx函数登录到Outlook系统,获得LPMAPISESSION用于数据通信;如果初始化不成功,则直接结束;步骤S3,通过步骤S2中登陆时获得的LPMAPISESSION打开msg storage table获取邮箱数据的根目录信息,再通过调用LPMAPISESSION对象的函数GetMsgStoresTable,得到IMAPITable对象;步骤S4,根据步骤S3中获取的根目录信息,通过调用IMAPITable对象的SetColumns函数设置查询条件,然后再调用QueryRows函数遍历根目录信息来获取所有的邮箱数据;步骤S5,创建一个业务文件夹对象Mfolder,业务文件夹对象Mfolder用于对Outlook数据进行的业务封装;步骤S6,开始遍历步骤S4中得到的邮箱数据,通过调用LPMAPISESSION对象的OpenMsgStorage函数打开邮箱对象LPMDB,然后调用邮箱对象LPMDB对象的OpenEntry函数获得邮箱根目录的文件夹对象LPMAPIFLODER,然后把文件夹对象LPMAPIFLODER和邮箱对象LPMDB传递给S5步骤创建的业务文件夹对象Mfolder用于后续进行数据交互操作;步骤S7,备份程序获取业务文件夹对象Mfolder的数据;步骤S8,将步骤S7中获取到的邮件信息备份到本地;完成将邮件信息备份到本地。2.根据权利要求1所述的一种对Outlook客户端数据做备份的方法,其特征在于:步骤S2中,MAPI环境初始化具体为:通过调用MAPIInitialize函数,该函数会返回一个返回码,根据返回码是否为S_OK来判断是否初始化成功,如果是则初始化成功,如果不是,则初始化失败。3.根据权利要求1所述的一种对Outlook客户端数据做备份的方法,其特征在于:步骤S4中,遍历根目录信息来获取所有的邮箱数据具体为:遍历根目录表时,将查询到的邮箱数据通过初始化时MAPI分配的LPMAPISESSION,通过LPMAPISESSION打开查询到的邮箱数据的存储对象,通过查询到的存储对象去获得ENTRY_ID,把ENTRY_ID作为参数去调用LPMAPISESSION对象的OpenMsgStore函数打开ENTRY_ID代表的邮箱存储对象LPMDB,得到所有的邮箱数据。4.根据权利要求1所述的一种对Outlook客户端数据做备份的方法,其特征在于:步骤S7中,备份程序获取业务文件夹对象Mfolder的数据,具体包括:步骤A1,首先,执行业务文件夹对象Mfolder的初始化操作,通过LPMAPIFOLDER对象的GetHierarchyTable函数打开业务文件夹对象Mfolder的子文件夹对象表,然后通过LPMAPIFOLDER对象的GetContentsTable函数打开业务文件夹对象Mfolder的内容表;步骤A2,初始化完成后,分别遍历步骤A1中得到的子文件夹对象表和内容表获取邮件信息。5.根据权利要求4所述的一种对Outlook客户端数据做备份的方法,其特征在于:步骤A2中,遍历子文件夹对象表为:通过S3步骤得到的IMAPITABLE对象的SetColumns函数设置要查询的具体参数,设置
PR_EN...

【专利技术属性】
技术研发人员:张绍
申请(专利权)人:成都傲梅科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1