如何在 Exchange 2007 中配置重复邮件检测

 

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

上一次修改主题: 2010-02-23

本主题说明如何编辑注册表以控制在 Microsoft Exchange Server 2007 中检测重复邮件的方式。当邮件发送到用户及包含相同用户的通讯组列表时,重复邮件会在 Exchange 2007 中出现。通常,如果通讯组列表在除发出邮件的 Exchange 服务器外的其他服务器上展开或隐藏通讯组列表,就会出现重复邮件。

Exchange 存储基于邮件的以下属性检测重复邮件:

  • Internet 邮件 ID

  • 客户端提交时间

该存储使用 Jet 数据库中的 DeliveredTo 表来跟踪重复邮件。当邮件传递给用户时,存储会检查此表以查看邮件条目是否已存在。如果条目不在表中,邮件则会传递给用户且列表中会增加一行以表明用户收到邮件。如果条目存在,该邮件会被丢弃。

默认情况下,存储跟踪重复邮件七天(168 小时)。您可以通过更改“DeliveredTo 过期(以小时为单位)”注册表值来更改该时间。该值是在删除所收到邮件信息之前保留的时间(以小时为单位)。存储接受注册表值的最长期限是 100 年。然而,随着您增加此值,表的大小也会增加。如果表变得非常大,传递邮件的速度可能会变慢。

note注意:
可以为“DeliveredTo 到期时间(以小时为单位)”注册表值设置的最小值为 1 小时。因此,无法在 Microsoft Exchange 中关闭“重复邮件检测”。

每隔一段时间,存储就会从 DeliveredTo 表中删除旧条目。由后台清理线程(每小时都运行)删除的旧条目。您可以通过更改“DeliveredTo 清理间隔(秒)”注册表值来更改清理频率。此值控制 DeliveredTo 表的清理频率(秒)。默认情况下,此值设置为 3,600 秒(1 小时)。

编辑“DeliveredTo 到期(小时)”注册表值的步骤

  1. 启动注册表编辑器。

  2. 展开以下子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<Server_Name>\Private-<GUID>

  3. 右键单击“专用<GUID>”,指向“新建”,然后单击“DWORD 值”。

  4. 键入 DeliveredTo Expiration in Hours,然后按 Enter 键为新值命名。

  5. 右键单击“DeliveredTo 到期时间(以小时为单位)”,然后单击“修改”。

  6. 在“值数据”框中,键入要保留收到邮件信息的时间(以小时为单位),然后单击“确定”。

  7. 展开以下子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<Server_Name>\Public-<GUID>

  8. 右键单击“专用<GUID>”,指向“新建”,然后单击“DWORD 值”。

  9. 键入 DeliveredTo Expiration in Hours,然后按 Enter 键为新值命名。

  10. 右键单击“DeliveredTo 到期时间(以小时为单位)”,然后单击“修改”。

  11. 在“值数据”框中,键入要保留收到邮件信息的时间(以小时为单位),然后单击“确定”。

  12. 退出注册表编辑器。

编辑“DeliveredTo 清理间隔(秒)”注册表值的步骤

  1. 启动注册表编辑器。

  2. 展开以下子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<Server Name>\Private-<GUID>

  3. 右键单击“专用<GUID>”,指向“新建”,然后单击“DWORD 值”。

  4. 键入 DeliveredTo Cleanup Interval in Seconds,然后按 Enter 为新值命名。

  5. 右键单击“DeliveredTo 清理间隔(秒)”,然后单击“修改”。

  6. 在“值数据”框中,键入每个执行“DeliveredTo 清理”的间隔(秒),然后单击“确定”。

  7. 展开以下子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<Server Name>\Public<GUID>

  8. 右键单击“专用<GUID>”,指向“新建”,然后单击“DWORD 值”。

  9. 键入 DeliveredTo Cleanup Interval in Seconds,然后按 Enter 为新值命名。

  10. 右键单击“DeliveredTo 清理间隔(秒)”,然后单击“修改”。

  11. 在“值数据”框中,键入要出现在每个执行“DeliveredTo 清理”的间隔(秒),然后单击“确定”。

  12. 关闭注册表编辑器。

在您更改这些注册表值后,由于以下原因重复电子邮件仍然会出现:

  • 如果两封邮件的 Internet 邮件 ID 或提交时间不同,则第二封邮件不会视为重复。

  • 如果这两封邮件相同,但两封邮件抵达时间间隔一个多小时,则存储清除任务将删除 DeliveredTo 表中的原始条目,用户会收到重复邮件。

  • 如果用户邮箱移到不同的数据库中,则用户可能会收到重复邮件。DeliveredTo 表和数据库相关联,因此用户邮箱移动时表信息不会移动。

  • 在 Exchange 2000 Server 或 Exchange 的早期版本中,当您使用 Outlook Web Access 将信息发送到用户和包含用户的通讯组列表时,重复邮件会出现。邮件提交后,Exchange 存储会在即将发送的消息上标记 Internet 邮件 ID。但是,Outlook Web Access 使用本地 MIME 类型提交邮件。由存储在邮件上标记的 Internet 邮件 ID 不对 MIME 邮件 ID 头进行更新。因此,MAPI 邮件不与本地 MIME 同步并且传输组件分类程序会将邮件拆分。这种行为会导致不同 Internet 邮件 ID 的重复邮件。在 Exchange Server 2003 版本和更高版本中,该行为会发生变化,这样只有在存储检测到 MIME 已重新生成或如果邮件是一个纯粹的 MAPI 邮件时,存储才会在邮件上标记 Internet 邮件 ID。