中心服务器投递邮件给边缘服务器的过程:
- Hub开启edge的Smtp Session
- Edge说我支持Shadow Redundancy
- Hub说Edge你测试一下Discard Status
- Hub投递邮件给Edge
- Edge拿到邮件就查一下该邮件的收件人,Hub记录,以便发送该邮件的Discard 信息
- Hub将该邮件移到Shadow队列中,并标记Edge是该邮件的主服务器,而Hub则是Shadow服务器
Edge服务器投递给给终端节点的过程:
- Edge投递邮件给下一节点服务器
- 下一节点服务器获取该邮件的收信人信息
- Edge标记该邮件的Discard Status为投递完成
Hub向Edge查询Discard Status(与Edge连接成功)
- 当与Edge 的Smtp Session终止前,Hub会向Edge查询上次头肩偷心的Sidcard Status。如果很久都没有Smtp Session连接,Hub也会在等待一个设定的时间后开启一个Smtp Session找Edge查询状态。
- Edge检查本地的Discard Status ,然后告诉Hub一份已投递邮件列表,并一处Discard信息
- Hub拿到已投递邮件列表后,从Shardow Queue中删除这些邮件
Hub向Edge查询Discard Status,然后重发邮件(与Edge连接失败)
- hub如果连不到edge,就将自己升为主服务器,并重新投递shadow 队列中的邮件
- 重新投递的邮件会发往另外一台edge上,并重新开始投递过程。
但是考虑到Exchange 2010与其他服务器的共存环境,过程会变成这样
Hub与不支持Shadow Redundancy的服务器连接
- Hub连到该服务器
- 该服务器说,我不支持Shadow Redundancy
- 投递邮件到该服务器
- srm标记该邮件已经投递给下一结点
- 当邮件全部投递给下一结点后,邮件被删除
不支持Shadow Redundancy的服务器与hub连接
- 发信服务器连接到Hub
- Hub说我支持Shadow Redundancy
- 发信服务器不屌这条回应,继续投递邮件
- Exchange拿到邮件就投递给下一结点或者创建一份Shadow Copy
- 返回发信服务器相关的信息