管理重播目录

 

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

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

默认情况下,重播目录位于每台安装了集线器传输服务器角色或边缘传输服务器角色的 Microsoft Exchange Server 2007 计算机上。复制到重播目录的格式正确的电子邮件文件通过提交进行发送。重播目录从外部网关服务器接收邮件并重新提交管理员从 Exchange 2007 服务器队列导出的邮件。

对所有重播目录配置任务使用 Set-TransportServer cmdlet。使用此 cmdlet 可以对重播目录进行下列配置更改:

  • 启用或禁用重播目录。

  • 指定重播目录的位置。

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

重播目录如何处理邮件

通过下列步骤处理复制到重播目录的、已正确格式化的 .eml 邮件文件,以进行提交:

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

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

  3. 成功地将 .tmp 文件转换为电子邮件之后,系统将向 .tmp 文件发出一个“关闭时删除”命令。.tmp 文件似乎仍保留在重播目录中,但是任何其他人都无法打开该文件。

  4. 邮件成功地排队传递之后,将发出“close”命令,随后将 .tmp 文件从重播目录中删除。如果删除失败,将生成事件日志错误。如果在重播目录中存在 .tmp 文件时重新启动 Microsoft Exchange 传输服务,所有 .tmp 文件将重命名为 .eml 文件并重新进行处理。这可能会导致邮件重复传输。

电子邮件文件的结构

标准 SMTP 电子邮件由“邮件信封”和邮件内容组成。邮件信封包含传输和传递邮件所需的信息。邮件内容包含统称为“邮件标题”的邮件头字段和邮件正文。RFC 2821 中规定了邮件信封,而 RFC 2822 中规定了邮件头。

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

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

对重播目录中邮件文件的要求

重播目录用于将导出的 Exchange 邮件重新提交到外部网关服务器以及从外部网关服务器接收邮件。这些邮件已针对重播目录进行格式化。管理员或其他应用程序几乎或根本不需要使用重播目录撰写并提交新邮件文件。应使用分拣目录创建并提交新邮件文件。

重播目录的邮件大量使用 X-Header 字段。X-Header 是邮件头中用户定义的非正式邮件头字段。X-Header 在 RFC 2822 中未专门介绍,但是可以使用以“X-”开头的未定义邮件头字段将非正式邮件头字段添加到邮件中。在重播目录的邮件文件中使用的特定于 Exchange 2007 的 X-Header 可以实际设置邮件信封中通常存在的传递信息。使用重播目录处理从其他 Exchange 服务器导出的邮件时,需要使用此功能来保留原始邮件信息。

复制到重播目录的邮件文件必须满足下列要求才能成功地传递:

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

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

  • X-Header 必须出现在所有常规邮件头字段的前面。

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

重播目录中的邮件需要下表中所述的 X-Header:

  • X-Sender:   此 X-Header 取代典型的 SMTP 邮件中的 From: 邮件头字段要求。必须有一个包含一个电子邮件地址的 X-Sender: 字段。尽管收件人的电子邮件客户端会将 From: 邮件头字段(如果存在该字段)的值显示为邮件的发件人,但是重播目录将忽略 From: 邮件头字段。其他参数通常在 X-Sender: 字段中,如下例所示:

    X-Sender: <bob@fabrikam.com> BODY=7bit RET=HDRS ENVID=12345ABCD auth=<someAuth>
    
    note注意:
    这些参数是通常由发送服务器生成的邮件信封值。在导出的邮件文件中可以看到类似的参数。
    RET= 指定如果无法传递邮件时,是将整个邮件还是只将邮件头返回给发件人。RET= 的值可以是 HDRSFULL
    ENVID= 是邮件信封标识符。BODY= 指定邮件的文本编码。AUTH= 指定邮件服务器的身份验证机制(如 RFC 2554 中所述)。
  • X-Receiver:   此 X-Header 取代典型的 SMTP 邮件中的 To: 邮件头字段要求。必须至少存在一个包含一个电子邮件地址的 X-Receiver: 字段。允许多个收件人具有多个 X-Receiver: 字段。尽管收件人的电子邮件客户端会将 To: 邮件头字段(如果存在该字段)的值显示为邮件的收件人,但是重播目录将忽略 To: 邮件头字段。其他可选参数可能在 X-Receiver: 字段中,如下例所示:

    X-Receiver: <mary@contoso.com> NOTIFY=NEVER ORcpt=mary@contoso.com
    
    note注意:
    这些参数是通常由发送服务器生成的邮件信封值。在导出的邮件文件中可以看到类似的参数。这些参数与发送状态通知 (DSN) 邮件有关(如 RFC 1891 中所述)。NOTIFY= 的值可以是 NEVERDELAYFAILUREORcpt= 用于保留邮件的原始收件人。

对于重播目录中的邮件文件,下表中所述的 X-Header 是可选的。

  • X-CreatedBy:   如果此 X-Header 存在,则不得为空。如果 X-CreatedBy: 字段不存在,则为该字段添加值 Unspecified。通常,此字段的值为 MSExchange12,但是还可以包含为发送连接器设置的非 SMTP 地址空间类型,例如 Notes。此邮件头字段用于邮件头防火墙功能。

  • X-EndOfInjectedXHeaders:   存在的所有 X-Header 的大小(字节数)。此 X-Header 可以作为一个标记,用于指示常规邮件头字段开始之前的最后一个 X-Header。

  • X-ExtendedMessageProps:   邮件的扩展邮件属性。

  • X-HeloDomain:   在初始 SMTP 协议转换期间提供的 HELO/EHLO 域字符串。

  • X-LegacyExch50:   用于保留 Exchange Server 2003 生成的自定义属性(如果 Exchange 2003 服务器存在)。

  • X-Source:   如果未指定此 X-Header 的值,则使用值 Replay。队列查看器在 MessageSourceName 列下使用此 X-Header。此 X-Header 的其他可能值是 Smtp Receive ConnectorSmtp Send Connector

  • X-SourceIPAddress:   发送服务器的 IP 地址。如果未指定 IP 地址,则此字段为 0.0.0.0。

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

X-Receiver: <mary@contoso.com> NOTIFY=NEVER ORcpt=mary@contoso.com
X-Sender: <bob@contoso.com> BODY=7bit ENVID=12345AB auth=<someAuth>
Subject: Optional message subject

This is the body of the message.

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

X-Receiver: <mary@contoso.com> NOTIFY=NEVER ORcpt=mary@contoso.com
X-Sender: <bob@contoso.com> BODY=7bit ENVID=12345ABCD auth=<someAuth>
To: mary@contoso.com
From: bob@contoso.com
Subject: Optional 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>

对重播目录中邮件文件的邮件头所做的修改

重播目录将 Bcc: 邮件头字段从邮件文件中删除。

在邮件提交过程中,重播目录将自己的 Received: 邮件头字段添加到邮件中。Received: 邮件头字段采用以下格式:

Received: from <ReceivingServerName> by Replay with <ExchangeServerVersion><DateTime>

重播目录修改邮件头中的以下邮件头字段:

  • Message-ID:   如果缺少此邮件头字段或此字段为空,重播目录将使用 <GUID>@<默认域> 格式添加 Message-ID: 邮件头字段。

  • Date:   如果缺少此邮件头字段或此字段格式不正确,重播目录将使用重播目录处理邮件的日期和时间添加 Date: 邮件头字段。

重播目录处理邮件失败

将邮件文件转换为电子邮件时的任何问题都可能会使重播目录认为该邮件无法传递(死信)。死信邮件文件存在严重的问题,例如缺少发件人、缺少收件人或格式问题。确定为死信的邮件文件将保留在重播目录中,并从 <文件名>.eml 重命名为 <文件名>.bad。如果 <文件名>.bad 文件已存在,该文件将重命名为 <文件名><日期时间>.bad。如果重播目录中存在死信,将生成事件日志错误,但是相同的死信邮件不会生成重复的事件日志错误。

重播目录的安全问题

Exchange Server 2003 使用单个分拣目录来创建并提交文本邮件文件。Exchange 2007 将此功能拆分为独立的分拣目录和重播目录。分拣目录是专为需要手动新建邮件文件的用户或应用程序而设计的。重播目录用于重新提交导出的 Exchange 电子邮件以及从非 SMTP 连接器接收邮件。通过这种责任分离,可以对一个目录应用适当的安全性,而并不影响另一个目录的功能。

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

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

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

下表介绍适用于重播目录的其他安全问题:

  • 通过重播目录使用的 X-Header 可以手动创建邮件信封。X-Sender:X-Receiver: 字段中的信息可以与电子邮件客户端显示的 To:From: 邮件头字段完全不同。这种冒充发件人和域的行为通常称为“电子欺骗”。“欺骗邮件”是这样的电子邮件:其发送地址已被修改,使其看起来好像来自某个发件人,而实际上却来自另一发件人。

  • 如果 X-CreatedBy: 字段的值为 MSExchange12,则认为目标是可信的,不会应用邮件头防火墙。通过邮件头防火墙,Exchange 可以保留在可信 Exchange 2007 服务器之间传输的邮件中的 X-Header,或从传输到 Exchange 组织外部的不可信目标的邮件中删除可能会泄漏的 X-Header。可以使用这些 X-Header 在经过授权的 Exchange 2007 服务器之间共享 Exchange 2007 信息,例如垃圾邮件可信度 (SCL)、邮件签名或加密。如果向未经授权的来源泄漏这些信息,可能会造成潜在的安全风险。

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

对重播目录的权限

需要对重播目录拥有下列权限:

  • Administrator:完全控制

  • 系统:完全控制

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

默认情况下,Microsoft Exchange 传输服务使用 Network Service 用户帐户的安全凭据管理重播目录的位置和权限。Network Service 帐户要求对重播目录具有相应的权限,以便可以打开 .eml 文件、将其重命名为 .tmp 并删除或邮件属于死信时将其重命名为 .bad。

可以使用 Set-TransportServer cmdlet 上的 ReplayDirectoryPath 参数移动重播目录的位置。能否成功地更改重播目录的位置取决于为 Network Service 帐户授予的对新重播目录的权限以及新重播目录是否已存在。如果新的重播目录尚不存在,并且 Network Service 帐户拥有在新位置创建文件夹并应用权限所需的权限,则系统将新建重播目录,并将向其应用正确的权限。如果新的重播目录已经存在,则不会检查现有文件夹的权限。在 Set-TransportServer cmdlet 中使用 ReplayDirectoryPath 参数移动了重播目录后,最好始终验证是否存在新的重播目录以及是否对新目录应用了正确的权限。如果对重播目录的更改未成功,可以先新建重播目录并对其应用正确的权限,然后再在 Set-TransportServer cmdlet 中使用 ReplayDirectoryPath 参数。

详细信息

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