管理分拣目录

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2007-02-22

默认情况下,分拣目录存在于每个安装了集线器传输服务器角色或边缘传输服务器角色的 Microsoft Exchange Server 2007 计算机上。复制到分拣目录中的格式正确的电子邮件文件将被提交以进行传递。管理员可将分拣目录用于邮件流测试,或者必须创建和提交其自己的邮件的应用程序也可以使用分拣目录。

可将 Set-TransportServer cmdlet 用于所有的分拣目录配置任务。使用此 cmdlet 可以对分拣目录配置进行以下更改:

  • 启用或禁用分拣目录。

  • 指定分拣目录的位置。

  • 指定分拣目录接受的邮件文件头最大大小。

  • 指定分拣目录接受的邮件文件收件人最大数目。

  • 指定邮件文件处理最大速率(每分钟邮件数)。

分拣目录处理邮件的方式

复制到分拣目录中的格式正确的 .eml 邮件文件将按照下列步骤进行处理以供提交:

  1. 每 5 秒钟将检查一次分拣目录中的新邮件文件。无法修改此轮询间隔。可以使用 Set-TransportServer cmdlet 的 PickupDirectoryMaxMessagesPerMinute 参数来调整邮件文件处理速率。默认值为每分钟 100 封邮件。无法打开的文件将保留在分拣目录中,并将在下一次轮询中重新对其进行评估。

  2. 将检查对分拣目录中的邮件文件设定的限制(如邮件头最大大小和最大收件人数)。默认情况下,邮件头的最大大小为 64 KB,最大收件人数为 100。可以使用 Set-TransportServer cmdlet 更改这些限制。

  3. 文件由 <文件名>.eml 重命名为 <文件名>.tmp。如果 <文件名>.tmp 文件已存在,则文件将重命名为 <文件名><日期时间>.tmp。如果文件重命名失败,则将生成事件日志错误,分拣进程将继续处理下一个文件。

  4. 成功地将 .tmp 文件转换为电子邮件之后,系统将向 .tmp 文件发出一个“关闭时删除”命令。.tmp 文件似乎仍位于分拣目录,但是其他任何人均无法打开该文件。

  5. 邮件成功地进入传递队列之后,系统将发出“关闭”命令,.tmp 文件将会从分拣目录中删除。如果删除失败,将生成事件日志错误。如果分拣目录中存在 .tmp 文件时重新启动 Microsoft Exchange 传输服务,则所有的 .tmp 文件将重命名为 .eml 文件,并将被重新处理。这可能会导致邮件重复传输。

电子邮件文件的结构

标准 STMP 电子邮件由“邮件信封”和邮件内容组成。邮件信封包含传输和传递邮件时所需的信息。邮件内容包含统称为“邮件头”的邮件头字段以及邮件正文。邮件信封在 RFC 2821 中进行了说明,邮件头在 RFC 2822 中进行了说明。

发件人撰写电子邮件并将其提交以进行传递时,该邮件包含符合 SMTP 标准所需的基本信息,例如发件人、收件人、邮件撰写日期和时间、主题行(可选)以及邮件正文(可选)。此信息包含在邮件自身中,根据定义,也包含在邮件头中。发件人的邮件服务器使用邮件头中的发件人信息和收件人信息为邮件生成邮件信封,并将邮件传输到 Internet 以传递到收件人的邮件服务器。收件人从不会看到邮件信封,因为它是由邮件传输进程生成的,实际上并不是邮件的一部分。每个参与邮件传输的服务器可能会将与传递邮件的服务器角色有关的邮件头字段或其他应用程序特定的邮件头字段插入邮件头。收件人使用电子邮件客户端打开邮件时,电子邮件客户端会将邮件头中比较相关的信息部分(例如发件人、收件人和主题)与邮件正文一起显示。

用于解释邮件信封和邮件头之间关系的最佳模拟方案是在大型企业中发送常规邮件。撰写正式的商业信件时,公司地址和收件人地址将写在信件顶部的开头称呼语中。随后,您将该信函交给公司收发室人员处理。收发室人员使用信件中的收件人信息制作信封,并将信件封在信封中,然后将信封投入信箱以进行投递。邮政机构将根据信封上的地址将信封投递到收件人公司。收件人公司的收发室人员收到信封,根据信封确定收件人,并打开信封,然后将信件放入收件人的个人信箱。收件人从其个人邮箱检索到您的信函时,他(她)可以根据称呼语位置的信息确定是您撰写的信函,并且该信函的收件人是他(她)。

分拣目录中邮件文件的要求

复制到分拣目录中的邮件文件必须满足下列要求才能成功地进行传递:

  • 邮件文件必须是符合基本 SMTP 邮件格式的文本文件。支持多用途 Internet 邮件扩展 (MIME) 邮件头字段和内容。

  • 邮件文件的文件扩展名必须是 .eml。

  • 在邮件头的 SenderFrom: 邮件头字段中必须至少存在一个电子邮件地址。如果在 SenderFrom: 字段中各存在一个电子邮件地址,则 From: 字段中的电子邮件地址将在邮件信封中用作邮件的原始发件人。

  • Sender 字段中只能存在一个电子邮件地址。不允许存在多个电子邮件地址。如果 From: 字段中只存在一个电子邮件地址,则“发件人”字段为可选项。

  • From: 字段中允许存在多个电子邮件地址,但是 Sender 字段中还必须只存在一个电子邮件地址。Sender 字段中的地址随后将在邮件信封中用作邮件的原始发件人。

  • To:Cc:Bcc: 字段中必须至少存在一个电子邮件地址。

  • 邮件头和邮件正文之间必须存在一个空行。

以下是使用分拣目录可接受格式的纯文本邮件的示例:

To: mary@contoso.com
From: bob@fabrikam.com
Subject: Message subject

This is the body of the message.

分拣目录邮件文件中也支持 MIME 内容。MIME 定义多种邮件内容,包括无法使用 7 位 ASCII 文本表示的语言、HTML 以及其他多媒体格式。对 MIME 及其要求的完整描述不在本主题的讨论范围之内。以下是使用分拣目录可接受格式的简单 MIME 邮件的示例:

To: mary@contoso.com
From: bob@fabrikam.com
Subject: Message subject
MIME-Version: 1.0
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

<HTML><BODY>
<TABLE>
<TR><TD>cell 1</TD><TD>cell 2</TD></TR>
<TR><TD>cell 3</TD><TD>cell 4</TD></TR>
</TABLE>

</BODY></HTML>

在分拣目录中为邮件文件对邮件头所做的修改

分拣目录将从邮件头中删除下列任意邮件头字段:

  • Received:

  • Resent-*:

  • Bcc:   在邮件头的可选 Bcc: 邮件头字段中找到的任何电子邮件地址都将得到正确处理。在 Bcc: 收件人提升为不可见的邮件信封收件人后,将从邮件头中删除,以保护其身份。如果邮件仅包含 Bcc: 收件人,则“未透露的收件人”的值将添加到邮件头中的 To: 字段。

作为邮件提交过程的一部分,分拣目录会将其自身的 Received: 邮件头字段添加到邮件中。采用以下格式的 Received: 邮件头字段:

Received: from localhost by Pickup with Microsoft SMTP Server id <ExchangeServerVersion><datetime>

如果下列邮件头字段丢失或其格式不正确,则分拣目录将对其进行修改:

  • Message-Id   如果 Message-Id 字段丢失或者为空,则分拣目录将使用格式 <GUID>@<默认域> 添加一个 Message-Id 字段。

  • Date:   如果 Date 字段丢失或其格式不正确,则分拣目录将添加分拣目录进行邮件处理的日期和时间。

分拣目录邮件处理中的故障

复制到分拣目录中的邮件文件可能不会成功地排入队列以等待传递。可能会出现下列类别的邮件提交故障:

  • 传递失败   格式正确的邮件文件可与无法由分拣目录成功提交以进行传递的有效发件人一起生成一个未送达报告 (NDR)。格式不正确的内容或分拣目录邮件限制发生冲突也可以导致分拣目录生成 NDR。如果在进行分拣目录邮件处理期间生成了 NDR,则原始邮件文件将附加到 NDR 邮件中,并且邮件文件将会从分拣目录中删除。

    note注意:
    由分拣目录提交的格式正确的邮件可能会在以后遇到传递失败的问题,并将随 NDR 返回至发件人。这种失败可能由与分拣目录无关的传输问题所引起,例如邮件传递路径沿途的消息服务器故障或路由故障。
  • 死信   被分类为死信的邮件具有严重的问题,这些问题将阻止分拣目录提交邮件进行传递。导致产生死信的另一种情况是,邮件格式正确,但是收件人无效,因为发件人无效,所以无法向发件人发送 NDR 邮件。

    确定为死信的邮件文件将保留在分拣目录,并将从 <文件名>.eml 重命名为 <文件名>.bad。如果 <文件名>.bad 文件已存在,则文件将重命名为 <文件名><日期时间>.bad。如果分拣目录中存在死信,则将生成事件日志错误,但是相同的死信邮件不会生成重复的事件日志错误。

note注意:
将邮件文件复制到分拣目录以供传递之前,请始终在其他位置撰写和保存邮件文件。分拣目录每 5 秒钟轮询一次新邮件。因此,如果您尝试在分拣目录自身中撰写和保存邮件文件,则分拣目录可能会在您完成撰写之前尝试处理邮件文件。

分拣目录的安全问题

Exchange Server 2003 使用单个分拣目录创建和提交文本邮件文件。Exchange 2007 则将此功能拆分为独立的分拣目录和重播目录。分拣目录是专为需要手动新建邮件文件的用户或应用程序而设计的。重播目录是专为重新提交导出的 Exchange 电子邮件以及从外部网关服务器接收邮件而设计的。

下表介绍分拣目录和重播目录共同存在的安全问题:

  • 任何在接收连接器上配置的安全性检查(例如反垃圾邮件、防病毒、发件人筛选或收件人筛选操作),都不会对通过分拣目录或重播目录提交的邮件执行。

  • 存在安全风险的分拣目录或重播目录可以充当开放中继。这样,可以使用其他服务器重新提交或“中继”邮件,以屏蔽邮件的真实来源。

分拣目录和重播目录的分离意味着可以对每个目录应用不同的安全级别。由于存在与重播目录相关联的其他安全风险,所以应向重播目录应用较高的安全性。可以向必须生成和提交邮件的用户或应用程序授予对分拣目录的访问权限,但是这些用户或应用程序不应要求对重播目录的访问权限。

默认情况下,所有集线器传输服务器和边缘传输服务器上都会启用分拣目录和重播目录。如果组织中特定的集线器传输服务器或边缘传输服务器上不需要分拣目录或重播目录,可以在该服务器上禁用分拣目录或重播目录。有关详细信息,请参阅下列主题:

分拣目录的权限

分拣目录需要下列权限:

  • 管理员:完全控制

  • 系统:完全控制

  • 网络服务:读取、写入和删除子文件夹及文件

默认情况下,Microsoft Exchange 传输服务使用网络服务用户帐户的安全凭据来管理分拣目录的位置和权限。网络服务帐户要求对分拣目录具有这些权限,以便可以打开 .eml 文件、重命名为 .tmp 并将其删除,或重命名为 .bad(如果邮件被分类为死信)。

可以通过在 Set-TransportServer cmdlet 中使用 PickupDirectoryPath 参数来移动分拣目录的位置。能否成功地更改分拣目录的位置取决于向网络服务帐户授予的对新分拣目录位置的权利,以及是否已存在新分拣目录。如果尚未存在新分拣目录,并且网络服务帐户具有创建文件夹和在新位置应用权限所需的权利,则将新建分拣目录,并将向其应用正确的权限。如果已存在新分拣目录,则将不会检查现有的文件夹权限。只要通过将参数 PickupDirectoryPathSet-TransportServer cmdlet 一起使用来移动分拣目录,就最好验证是否存在新的分拣目录以及新的目录是否已应用了正确的权限。如果对分拣目录进行的更改未成功,则可以在将参数 PickupDirectoryPathSet-TransportServer cmdlet 一起使用之前新建分拣目录,并向其应用正确的权限。

详细信息

有关详细信息,请参阅下列主题: