一种无代理备份和还原Exchange邮件服务器的方法与流程

文档序号:29258216发布日期:2022-03-16 11:37阅读:206来源:国知局
一种无代理备份和还原Exchange邮件服务器的方法与流程
一种无代理备份和还原exchange邮件服务器的方法
技术领域
1.本发明属于计算机数据处理技术领域,具体为一种无代理备份和还原exchange邮件服务器的方法。


背景技术:

2.邮件是企业之间以及公司内部各级之间传递文档和信息的重要工具之一,它的安全是至关重要的,因此如何保证邮件数据不丢失或者不损坏是一个必须考虑的问题,于是及时备份邮件数据,丢失时及时恢复和还原邮件是一个重要的安全策略,本发明就是基于数据安全考虑,以细化到每个账号下每一封邮件的粒度备份邮件数据。


技术实现要素:

3.本发明的目的在于提供一种无代理备份和还原exchange邮件服务器的方法,以解决背景技术中提出的现有技术中不能对邮件及时备份和及时恢复的问题。
4.为解决上述技术问题,本发明所采用的技术方案是:
5.一种无代理备份和还原exchange邮件服务器的方法,包括以下步骤:
6.远程连接步骤:使用exchange服务器自带的ews manager api功能和exchange webservice功能,当ews manager api和exchange webservice安装成功后,在服务器的iis中有对应website,实现远程连接和操作;
7.账号获取步骤:通过配置一个统一的账号,提供给备份程序,在备份时用此账号获取exchange邮件服务器上所有的邮箱账号;管理账号包括本地账号或域账号;
8.账号添加步骤:在exchange邮件服务器的计算机管理中新增管理账号;
9.管理步骤:登录exchange管理界面,添加管理员角色组:email import export,并将exchange内置系统管理角色:mailbox import export加入到角色组email import export的role列表中;
10.账号管理步骤:将账号添加步骤中添加的管理账号加入到管理步骤中添加的管理员角色组email import export中;
11.账号组合步骤:将账号添加步骤中添加的管理账号添加到exchange内置的applicationimpersonation角色中;
12.邮箱列表获取步骤:使用power shell的get-mailbox方法获取邮箱列表,获得每个邮箱的别名、显示名、邮件地址和登录账号;然后将邮箱列表数据保存到本地数据库中;
13.数据备份步骤:数据备份步骤包括以下步骤:
14.步骤s1:确定备份邮箱集合;
15.步骤s2:确定每个邮箱需要备份的文件夹
16.步骤s3:确定邮件备份的过滤检索的起始时间;
17.步骤s4:统计备份邮件的总量,计算备份进度;
18.步骤s5:按照时间段过滤,实现增量备份;
19.步骤s6:存储邮件数据到介质,完成备份;
20.备份还原步骤:备份还原包括以下步骤:
21.步骤a1:从本地数据库中显示所有的邮箱列表;
22.步骤a2:确定需要还原的邮箱,对步骤s6中得到的备份文件进行还原;
23.步骤a3:输入关键字进行邮件检索,关键字包括收件人、发件人、邮件标题和邮件内容;
24.步骤a4:勾选搜索处理的邮件,然后执行还原;
25.步骤a5:完成还原。
26.根据上述技术方案,账号获取步骤中,使用power shell的get-mailbox方法获取邮箱列表时,使用身份模拟模式来获取邮箱列表,通过身份模拟模式来将其他用户的邮件导入或导出到配置的统一的账号中。
27.根据上述技术方案,账号获取步骤中,获取邮件列表时,使用windows server内置的powershell组件作为服务端的代理,然后使用与其对应的ews manage api技术和exchange web service技术进行通讯。
28.根据上述技术方案,检索邮件及还原时,使用ews manage api技术和exchange web service技术,远程连接到exchange服务器并完成检索及还原操作。
29.根据上述技术方案,数据备份步骤中,确定备份邮箱集合具体为:判断备份邮箱是手动备份还是通过备份任务进行备份,如果是手动备份,则则从本地数据库中检索所有的邮箱列表,然后选择备份邮箱范围,如果是通过备份任务进行备份,则直接读取备份任务中确定的邮箱列表,完成需要备份邮箱集合。
30.根据上述技术方案,数据备份步骤中,确定每个邮箱需要备份的邮件夹范围具体为:读取inbox、deleteitems、drafts、journal、notes、outbox、sentitems和tasks一级文件夹及所有子文件夹的邮件,根据每个一级文件夹及其所有子文件夹中邮件的数量,分别确定每个邮件夹的备份范围。
31.根据上述技术方案,数据备份步骤中,确定邮件备份过滤的检索起始时间具体为:判断为完全备份还是增量备份,如果是完全备份,则在调用ews manage api的邮件搜索方法时,将过滤检索起始时间参数设置为null,如果是增量备份,则根据邮箱账号名,从db中读取上次备份的时间。
32.根据上述技术方案,数据备份步骤中,统计备份邮件的总量具体为:循环搜索一级备份邮件夹,再根据步骤s3中的检索起始时间过滤,调用ews finditems接口统计一级文件夹及子文件夹下有多少邮件;同时统计所有存在邮件的文件夹,所有统计数据相加,得到备份邮件的总量。
33.根据上述技术方案,数据备份步骤中,需要按照时间段过滤,实现增量备份具体为:使用ews manage api的邮件搜索方法,并在调用此方法时传递过滤条件,并导出邮件,完成增量备份。
34.根据上述技术方案,数据备份步骤中,存储邮件数据到介质具体为:通过ews接口获取到的邮件数据保存到配置的本地存储位置或者在网络中的其它计算机磁盘里。
35.与现有技术相比,本发明具有以下有益效果:
36.通过本发明中的方法,解决了用户邮件在exchange服务器上删除后,不能恢复的
问题。通过本发明中提供的方法,可以使用户在使用exchange邮件服务器,实现邮件的自动备份,并且可以通过备份数据快速的查找和无缝恢复,避免了关键数据丢失后带来的损失。
37.同时,当备份设置完成后,邮件的备份全程无需人工干预,自动、按时完成数据备份、转移和集中存储,方便了用户的使用,以及提高了邮件保存的及时性。
附图说明
38.图1为本发明整体流程图;
39.图2为本发明邮件备份流程图;
40.图3为本发明邮件还原流程图。
具体实施方式
41.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.实施例一
43.如图1、图2和图3所示,一种无代理备份和还原exchange邮件服务器的方法,其特征在于:包括以下步骤:
44.远程连接步骤:使用exchange服务器自带的ews manager api功能和exchange webservice功能,当ews manager api和exchange webservice安装成功后,在服务器的iis中有对应website,实现远程连接和操作;
45.账号获取步骤:通过配置一个统一的账号,提供给备份程序,在备份时用此账号获取exchange邮件服务器上所有的邮箱账号;管理账号包括本地账号或域账号;
46.账号添加步骤:在exchange邮件服务器的计算机管理中新增一个管理账号;
47.管理步骤:登录exchange管理界面,添加管理员角色组:email import export,并将exchange内置系统管理角色:mailbox import export加入到角色组email import export的role列表中;
48.账号管理步骤:将账号添加步骤中添加的管理账号加入到管理步骤中添加的管理员角色组email import export中;
49.账号组合步骤:将账号添加步骤中添加的管理账号添加到exchange内置的applicationimpersonation角色中;
50.邮箱列表获取步骤:使用power shell的get-mailbox方法获取邮箱列表,获得每个邮箱的别名、显示名、邮件地址、登录账号等信息;然后将邮箱列表数据保存到本地数据库中;
51.数据备份步骤:数据备份步骤包括以下步骤:
52.步骤s1:确定备份邮箱集合;
53.步骤s2:确定每个邮箱需要备份的文件夹
54.步骤s3:确定邮件备份的过滤检索的起始时间;
55.步骤s4:统计备份邮件的总量,计算备份进度;
56.步骤s5:按照时间段过滤,实现增量备份;
57.步骤s6:存储邮件数据到介质,完成备份;
58.备份还原步骤:备份还原包括以下步骤:
59.步骤a1:从本地数据库中显示所有的邮箱列表;
60.步骤a2:确定需要还原的邮箱,对步骤s6中得到的备份文件进行还原;
61.步骤a3:输入关键字进行邮件检索,关键字包括收件人、发件人、邮件标题和邮件内容;
62.步骤a4:勾选搜索处理的邮件,然后执行还原;
63.步骤a5:完成还原。
64.账号获取步骤中,使用power shell的get-mailbox方法获取邮箱列表时,使用身份模拟模式(powershell与exchange通信的一个身份验证方式)来获取邮箱列表,通过身份模拟模式来将其他用户的邮件导入或导出到配置的统一的账号中。
65.账号获取步骤中,获取邮件列表时,使用windows server内置的powershell组件作为服务端的代理,然后使用与其对应的ews manage api技术和exchange web service技术进行通讯。
66.检索邮件及还原时,使用ews manage api技术和exchange web service技术,远程连接到exchange服务器并完成检索及还原操作。
67.数据备份步骤中,确定备份邮箱集合具体为:判断备份邮箱是手动备份还是通过备份任务进行备份,如果是手动备份,则则从本地数据库中检索所有的邮箱列表,然后选择备份邮箱范围,如果是通过备份任务进行备份,则直接读取备份任务中确定的邮箱列表,完成需要备份邮箱集合。
68.数据备份步骤中,确定每个邮箱需要备份的邮件夹范围具体为:读取inbox、deleteitems、drafts、journal、notes、outbox、sentitems和tasks一级文件夹及所有子文件夹的邮件,根据每个一级文件夹及其所有子文件夹中邮件的数量,分别确定每个邮件夹的备份范围。
69.数据备份步骤中,确定邮件备份过滤的检索起始时间具体为:判断为完全备份还是增量备份,如果是完全备份,则在调用ews manage api的邮件搜索方法时,将过滤检索起始时间参数设置为null(程序设计约定,在这里表示不需要检测时间),如果是增量备份,则根据邮箱账号名,从db中读取上次备份的时间。
70.数据备份步骤中,统计备份邮件的总量具体为:循环搜索一级备份邮件夹,再根据步骤s3中的检索起始时间过滤,调用ews finditems接口统计一级文件夹及子文件夹下有多少邮件;同时统计所有存在邮件的文件夹,所有统计数据相加,得到备份邮件的总量。
71.数据备份步骤中,需要按照时间段过滤,实现增量备份具体为:使用ews的邮件搜索方法,并在调用此方法时传递过滤条件(此方法有一个条件过滤参数,将起止时间赋给此参数相应的属性即可),并导出邮件,完成增量备份。
72.数据备份步骤中,存储邮件数据到介质具体为:通过ews接口获取到的邮件数据保存到配置的本地存储位置或者在网络中的其它计算机磁盘里。
73.实施例二
74.本实施例提供一种具体的设施步骤,包括以下步骤:
75.步骤c1:开始;
76.步骤c2:读取exchange服务器邮箱列表;
77.步骤c3:制定备份计划包含备份时间,备份类型等信息;
78.步骤c4:将步骤c3中制定的备份计划存储到db中;
79.步骤c5:从db中读取备份进行备份还原。
80.邮件备份的具体流程为:
81.步骤c31:开始;
82.步骤c32:根据备份计划,判断是否为增量备份,如果是,则跳转到步骤c33;如果不是,则跳转到步骤c35;
83.步骤c33:从db中读取邮箱最近一次备份的时间;
84.步骤c34:设置时间过滤,获取单个邮箱中需要备份的邮件总数(用于计算备份进度)并跳转到步骤c36;
85.步骤c35:获取单个邮箱中需要备份的邮件总数(用于计算备份进度),完成后跳转到步骤c36;
86.步骤c36:循环有邮件的文件夹及子文件夹;
87.步骤c37:调用ews manage api获取每个文件夹下的所有邮件;
88.步骤c38:循环获取并存储邮件内容;
89.步骤c39:进度通知;
90.步骤c310:存储邮件本次备份的时间到db;
91.步骤c311:结束。
92.所述备份还原包括如下步骤:
93.步骤c51:开始;
94.步骤c52:从备份数据库中搜索邮件;
95.步骤c53:选择需要还原的邮件;
96.步骤c54:调用ews manage api还原;
97.s541:新建一个连接到邮件服务器的emailmessage对象,并将还原的邮件内容赋予该对象的mimecount属性。
98.c542:根据备份邮件设置emailmessage对象的isread、datetimesent,datetimerecieved、lastmodifytime属性。
99.c543:调用emailmessage.save方法。
100.步骤c55:结束。
101.所述步骤c2中,读取邮件列表的具体步骤为:获取邮件列表时,使用windows server内置的powershell组件作为服务端的代理,然后使用与其对应的client技术进行通讯(这个技术指的是ews manage api和exchange web service)。
102.检索邮件及恢复时,使用ews manage api技术和exchange web service技术,远程连接到exchange服务器并完成相关操作(邮件检索、存储备份、还原邮件)。
103.所述备份邮件包括:确定备份邮箱集合、确定每个邮箱需要备份的邮件夹范围、确定邮件备份过滤的检索起始时间、统计备份邮件的总量,计算备份进度、需要按照时间段过滤实现增量备份、存储邮件数据到介质。
104.所述计算备份进度具体为:
105.步骤d1:备份任务中每一个需要备份的邮箱的进度比例是:(1/备份邮箱总数)*100%;
106.步骤d2:每个一级文件夹的比例是:1/(一级文件夹的个数)*100%;
107.步骤d3:在每一个一级文件夹下备份每一封邮件的完成进度是:(1/备份邮件总数)*100%;
108.步骤d4:每完成一封邮件的备份,备份进度就增加sa1*sa2*sa3里的比例。
109.所述还原搜索步骤具体步骤为:
110.步骤e1:从本地数据库中显示所有的邮箱列表;
111.步骤e2:确定需要进行邮件搜索的邮箱;
112.步骤e3:输入查询关键字,按照收件人、发件人、邮件标题、邮件内容进行搜索邮件;
113.步骤e4:勾选搜索处理的邮件,然后执行还原;
114.步骤e5:还原邮件时也需要还原邮件状态。
115.实施例三
116.本发明的基本构思为:本发明所要解决的技术问题包括如下步骤:
117.a)远程连接到exchange服务器。
118.使用exchange服务器自带的ews manager api功能和exchange webservice功能,安装成功后,在服务器的iis中有对应website,可以实现远程连接和操作。
119.b)配置一个统一的账号获取exchange邮件服务器上所有的邮箱账号。
120.此问题的解决办法是:
121.1、通过在exchange邮件服务器上配置专门的export、import角色和用户,并将用户添加到exchange内置的applicationimpersonation角色中。
122.2、使用power shell的get-mailbox方法获取邮箱列表,返回aliasname,displayname,emailaddress,samaccountname等信息。
123.然后将邮箱列表数据保存到本地数据库中。
124.c)身份模拟
125.因为使用统一个账号操作所有用户的邮件,而这个账号本身也是一个exchange用户,所以在操作时不能将其他用户的邮件导入或导出到此连接用户的邮箱里,针对该问题的解决办法是:在连接到power shell时使用身份模拟模式。
126.d)完成备份及恢复,不需要在服务器上安装任何代理。针对此问题的解决办法是:
127.1、获取邮件列表时,使用windows server内置的powershell组件作为服务端的代理,然后使用与其对应的client技术进行通讯。
128.2、检索邮件及恢复时,使用ews manage api技术和exchange web service技术,远程连接到exchange服务器并完成相关操作。
129.e)备份邮件
130.1、确定备份邮箱集合
131.i、如果是手动备份,则从本地数据库中检索所有的邮箱列表,然后选择备份邮箱范围。
132.ii、如果是执行备份任务,则直接读取备份任务中确定的邮箱列表
133.2、确定每个邮箱需要备份的邮件夹范围。
134.默认备份:
135.inbox,deleteitems,drafts,journal,notes,outbox,sentitems,tasks这几个一级文件夹及所有子文件夹的邮件。
136.3、确定邮件备份过滤的检索起始时间
137.如果是完全备份,则过滤检索起始时间为null
138.如果是增量备份,则根据邮箱账号名,从db中读取上次备份的时间。
139.4、统计备份邮件的总量,计算备份进度
140.循环搜索一级备份邮件夹,再根据第3步的检索起始时间过滤,调用ews finditems接口统计一级文件夹及子文件夹下有多少邮件;同时统计所有存在邮件的文件件。
141.进度计算:
142.i.备份任务中每一个需要备份的邮箱的进度比例是:(1/备份邮箱总数)*100%
143.ii.每个一级文件夹的比例是:1/(一级文件夹的个数)*100%;
144.iii.在每一个一级文件夹下备份每一封邮件的完成进度是:(1/备份邮件总数)*100%。
145.iv.每完成一封邮件的备份,备份进度就增加i*ii*iii里的比例。
146.5、需要按照时间段过滤实现增量备份。
147.由于实际当中用户较多,且每个用户的邮件也较多,如果每次都是完全备份,时间跨度会很长,因此需要在做增量备份时按照创建时间过滤新增的邮件。此问题的解决办法是:使用ews的邮件搜索方法,并在调用此方法时传递过滤条件,并导出邮件。
148.service.finditems(folder,setfilter(arguments),view)
149.此方法中的arguments就是传递检索时间,时间值来自第3步。
150.其中service的url地址就是exchange服务器上对应的website里提供的方法。
151.6、存储邮件数据到介质
152.通过ews接口获取到的邮件数据可以直接保存到配置的本地存储位置或
153.者远程计算机。
154.实施例四
155.本实施例为实施例三的进一步细化。从备份中搜索邮件并还原:
156.1、从本地数据库中显示所有的邮箱列表;
157.2、确定需要进行邮件搜索的邮箱;
158.3、输入查询关键字,可以按照收件人、发件人、邮件标题、邮件内容进行搜索邮件;
159.4、勾选搜索处理的邮件,然后执行还原;
160.5、还原邮件时也需要还原邮件状态。
161.如果备份前邮件处于已阅读状态,则还原后,邮件状态也必须时已阅读状态。此问题的解决办法有2种:
162.i.如果在备份时采用的是mime的方式,则在还原时,通过设置邮件扩展属性pr_message_flags来恢复状态。
163.extendedpropertydefinition pr_message_flags_msgflag_read=new extendedpropertydefinition(3591,mapipropertytype.integer);
164.email.setextendedproperty(pr_message_flags_msgflag_read,1)
165.ii.使用exchange web service的exportitem方法备份,并使用对应的uploaditem方法还原。
166.实施例五
167.本实施例为实施例一的进一步细化。专业术语解释:
168.ews:指的是exchange web service。
169.mime:多用途互联网邮件扩展类型。
170.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
171.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1