您不能修改补漏白的 SMTP 传输事件接收器中的 MAPI 邮件

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 273233
本文已归档。它按“原样”提供,并且不再更新。
症状
您不能修改补漏白的简单的邮件中的 MAPI 邮件传输协议 (SMTP) 传输事件接收器,如实现 ISMTPOnArrival::OnArrival 方法。对这些邮件所做的任何修改看起来是成功,并显示在事件接收器的作用域中,但是不会持续到实际的邮件。此外,如附件和消息的正文的某些属性可能不可用。
原因
SMTP 传输事件接收器为 Exchange 2003 或 Exchange 2000 可用于补漏白所有待发电子邮件,因为它们由 SMTP 传输层处理。导致此问题的原因是 Exchange 将 MAPI 邮件转换为一个临时的 SMTP 版本,以便事件接收器来处理,然后放弃该临时版本事件接收器代码之后执行完毕。
解决方案
在关键问题是在消息到达 Exchange 服务器的方式。MAPI 邮件中,可以到达以下方式的 Exchange 服务器:
  • 使用一个 MAPI 客户端如 Outlook,从该服务器上的邮箱发送一条消息。
  • 一条消息进入一个 Exchange 开发工具包 (EDK) 网关。
  • 在混合环境中将一条消息被路由从 Exchange 5.5。
若要解决此问题,强制为 SMTP 格式的所有传入邮件。通过使用 SMTP 连接器来强制通过边框 Exchange 服务器或智能主机的出站邮件。将事件接收器放边框 Exchange 服务器或中继主机上。由于 Exchange 2003 和 Exchange 2000 服务器相互通信通过 SMTP,到边框服务器或到智能主机的所有传入消息应为 SMTP 格式。因此,事件接收器应能按预期效果运行。强制在入站的消息要通过边框 Exchange 服务器或中继主机事件接收器的安装位置。入站的邮件接收 SMTP 格式。有关如何执行此操作的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
317680如何将免责声明添加到传出 SMTP 邮件,在 Visual Basic 脚本
有关如何强制通过边框 Exchange 服务器,或通过智能主机的出站消息的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
293800如何设置 Windows 2000 作为 SMTP 中继服务器或中继主机
有关如何配置 SMTP 连接器的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
265293如何配置 SMTP 连接器,Exchange 中
状态
此行为是设计使然。
更多信息
尽管这一限制是 Exchange 2003 和 Exchange 2000 的固有,可以观察到通过在 Windows SMTP 传输事件接收器也:
  • IMailTransportSubmission::OnTransportSubmission
  • IMailTransportOnPreCategorize::OnSyncMessagePreCategorize
  • IMailTransportOnPostCategorize::OnMessagePostCategorize

警告:本文已自动翻译

属性

文章 ID:273233 - 上次审阅时间:01/11/2015 03:51:10 - 修订版本: 6.4

Microsoft Exchange Server 2003 Enterprise Edition, Microsoft Exchange Server 2003 Standard Edition, Microsoft Exchange 2000 Server 标准版

  • kbnosurvey kbarchive kbmt kbmsg kbpending kbprb KB273233 KbMtzh
反馈