关于队列的内容较多,咱得多分几部分来讲,讲到哪是哪吧。

每当咱在Exchange里查看队列的时候,我们会看到队列分成好几个组,每个邮箱数据库都有自己的目标队列,DAG、AD站点也是,AD林也是一个队列,最后最多的就是外部SMTP域队列。

当传输服务处理队列里的邮件时,它首先会尝试投递队列里的第一封邮件,如果邮件投递成功,传输服务会去告诉传输高可用系统(后边的章节里会介绍到)这封邮件投递成功。如果不成功,那么邮件会留在队列里,然后过段时间进行重试。当重试次数打到某个预设值时,或者是重试的间隔超时,这封邮件就被视为未送达,然后返回发送者一个NDR报告。

Exchange不同版本之间的队列行为各有千秋,但是基本目的都差不多,邮件进入队列直到它们被其他组件检索和处理投递完成。

队列类型:

不同的队列类型对应不同的作用,所以Exchange有多种队列类型也并不奇怪。首先是三种永久性队列:

提交队列(Submission Queue):提交队列里保存并组织邮件等待分拣器处理,任何刚刚抵达服务器的邮件都会被放到这个队列里,然后分拣器对此队列中检索邮件,确定收件人的位置和路由,再重定向给相应的合适的其他队列。

无法送达队列(Unreachable Queue):包含着无法路由给目的地的邮件,比如发一封邮件给一个没有MX记录的SMTP域,那么这封邮件就会出现在无法到达队列里,发送给无效收件人的邮件也会出现在这里。Exchange会周期性的重试这个队列里的邮件,当检测到路由更改的时候,也会进行重试。所以这里面的邮件要么就是退回一封NDR,要么就会被成功发送。每台服务器上只有一个无法送达队列,且该队列在平常没有内容的时候是不可见的(EMS和EAC都看不到,除非里头有东西)。

病毒邮件队列(Poison Message Queue):病毒邮件队列也通常为空且不可见,它里边儿保存(隔离)了一些被视为是病毒的邮件(废话),这些邮件通常会导致传输服务崩溃。病毒邮件队列里的邮件不会自动尝试重新提交,管理员需要手动去删除或者恢复它们。

然后是另外三种队列:

传递队列(Delivery Queue):最常用的队列,保存着通过使用SMTP传递到本地或者远程目标的邮件。每个目的地都会有一个传递队列,如果目标服务是传输代理类型的连接器,那么非SMTP目标也会使用传输队列。每个队列中的邮件传递完毕之后,该队列会空置一段时间,然后被自动删除,这个时间可以由Set-TransportService命令里的QueueMaxIdleTime参数来控制,默认为3分钟。

卷影冗余队列(Shadow Redundancy Queues):卷影队列在邮件传输时会保留邮件的冗余副本。

Safety Net:保留传输服务器成功传递的邮件备份。管理工具无法访问Safety Net队列。

关于最后两种负责传输系统冗余的队列,我们在后面传输的高可用里会详细讲到,这里就暂且不提。