Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->网络应用 ->邮件服务器 ->Exchange Server ->正文

Exchange传输组件大揭秘(中)

来源:Linuxdby.com 作者:Webmaster 时间:2007-05-28 点击: [收藏] [投稿]
Exchange Transport AntiVirus API
该Event Sink响应OnSubmission 事件,它的主要代码在OnSubmit.dll 中被实现。这个Event Sink的主要作用是为反病毒厂商提供了一组在传输层的病毒扫描API,使用此API的程序可以在OnSubmission事件发生时截获邮件内容并进行病毒扫描。
通常情况之下,反病毒厂商更倾向于使用基于数据库层面的反病毒接口,因此这个传输层反病毒API默认是被禁用的。如果服务器是邮件网关、前端服务器,管理员可以通过更改注册表的方式启用此接口。
Exchange Categorizer
这是Exchange Server最重要的模块之一,由在Phatcat.dll中实现的Event Sink响应OnCategorize事件群中的事件。Phatcat.dll中的代码实现了地址解析、邮件转发、设定外发邮件地址标识、展开DL、进行各类传输限制的检查等等至关重要的功能。Categorizer中的代码同时也实现了邮件归档(journaling)和特殊情况下的邮件拆分(bifurcate)。
Mobile Categorizer
Miscat.dll中的Event Sink负责处理移动设备用户的邮件到达通知(up-to-date notifications)。这是Exchange 2003中的新功能。
Exchange Router
这个Event Sink由Reapi.dll中的代码实现,用来响应OnGetMessageRouter 事件群中的事件。AQE通过Reapi.dll来确定邮件的下一跳(next hop)地址。这个Event Sink同时计算Exchange组织的路由拓扑和路由表。
Exchange LoadBalancer
这个Event Sink也是由Reapi.dll中的代码实现,它响应OnDnsResolveRecord事件,负责在多个外部连接器之间进行负载平衡。

表一:响应SMTP传输事件的Event Sink。
下文中,我们将重点讨论在Exchange Categorizer中发生的故事。
Exchange Categorizer
OnCategorize事件群一共由十个事件组成,我们可以通过MSExchangeTransport的诊断日志来了解这些事件的细节,诊断日志的开启方法请看图二。系统还允许管理员开启Level 7级别(Debugging Level)的SMTP诊断日志来监控SMTP服务器的每一个动作,这个日志的开启需要进行注册表的更改,具体的键值位置请参考此文档:How to enable SMTP protocol logging http://support.microsoft.com/default.aspx?scid=kb;en-us;265139。


图二:启动MSExchangeTransport Diagnostics Logging
为了全面分析,我们先简单的把这10个Event和他们对应的Event Sink的职能列出来:(如表二)
OnCategorize事件
Event Sink所执行的操作
Register
分类器组件初始化事件,负责创建分类器与其它模块(如活动目录访问、路由引擎等等)的连接
BeginMessageCategorization
表示邮件分类过程的开始
EndMessageCategorization
表示邮件分类过程的结束
BuildQuery
通过收发件人的proxyAddresses属性来创建对活动目录进行查询的LDAP语句,来获取收发件人对象的完整信息,这是地址解析的重要过程之一
BuildQueries
执行批量的BuildQuery操作
SendQuery
发送查询请求到活动目录,此查询是异步的
SortQueryResult
根据查询条件对返回的结构进行处理
ProcessItem
将地址解析的结果应用到邮件上
ExpandItem
这个过程也是邮件投递过程中非常重要的一环,DL分解、发送限制检查、邮件拆分都在这里发生
CompleteItem
当以上操作完成后,CompleteItem事件的Event Sink执行邮件传送归档(Journaling)、组织内收件人的服务器定位以及其它的一些特殊操作
表二:OnCategorize事件
请参考微软知识库文档来了解Categorization过程更多的细节:
XCON: What Message Categorization in Exchange 2000 Server Involves
http://support.microsoft.com/default.aspx?scid=kb;en-us;233363
我们可以从表二中看到,OnCategorize事件群的Event Sink执行了邮件投递过程中的很多重要操作,我们重点讨论其中三个Event Sink的处理细节。
第一:BuildQuery和地址解析
BuildQuery是一个非常复杂的过程,要完全理解这个组件,首先需要了解Exchange Server中的各种“邮件地址类型”。在Exchange Server中,我们常用的SMTP地址(username@domain.com)只是种类繁多的邮件地址类型里面的冰山一角。每一种邮件协议,都有它特定的邮件地址表示方法,Lotus Notes、Novell GroupWise、古老的MS Mail等等,都有一套特定的邮件地址,只不过相比SMTP,这些邮件地址类型我们很少接触到罢了。Exchange中必须支持的其他邮件地址类型还有:X.400 address、Legacyexchangedn、Non-Exchange address等等。要说清楚这些地址类型,我们还需要从Exchange的发展史谈起。Exchange5.5时代,微软为了兼容X.400和X.500协议,在邮件系统内部采用了X.400这样的用户邮件地址表示方式,随着Internet的发展,Exchange产品也开始把重心侧重到对SMTP协议的支持,从Exchange 2000开始,SMTP成为了Exchange中邮件传输的主力协议,但是为了兼容Exchange 5.5,微软仍然保留了MTA传输引擎和X.400地址类型,同时,在活动目录中引入了Legacyexchangedn这样的属性。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:ExRAP 检测到的 Exchange 配置和操作问题   下一篇:为通过身份验证连接和匿名连接配置 SMTP

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
·如何用活动目录来设置默认电子邮件帐户?
·调整Exchange 2003的DSA缓存
·怎样才能阻止用户打开加密信息?
·Exchange数据库执行可靠恢复操作
·突破上传至OWA公共文件夹的附件大小限制
·您的服务器意外终止了连接
·确保 Exchange 通信的安全(二)
·确保 Exchange 通信的安全(一)
·关于OMA错误:Access....denied的解决方法
·确保 Exchange 通信的安全(三)
推荐文章
·单击“新邮件”图标时OWA启动Window
·微软Exchange 2000的备份与恢复
·Live Communications Server 2003
·Exchange磁盘性能优化六:已删数据
·如何Exchange移动数据库文件(一)
·Exchange数据库执行可靠恢复操作
·Exchange传输组件大揭秘(中)
·把垃圾邮件拒之门外—用Exchange Se
精彩文章
·Exchange Server 公用文件夹中的访
·EXCHANGE5.5 常见问答
·Microsoft Exchange Server 2003的
·自定义表单:更好的利用你的公用文
·如何将OWA的HTTP连接重定向到 HTTPS
·从Exchange 5.5到Exchange 2003的升
·Exchange 2003 OWA中修改密码
·Exchange 2007测试六:Management S
·Exchange 2000 Server 使用的 TCP/U
·Exchange减小磁盘空间需解决问题
·在删除邮箱后从 OST 还原
·通过ISA发布Exchange OWA
·公用文件夹不能删除的问题
·Exchange 2000 OWA虚拟目录中配置验
·Exchange 2003 SP2中对公用文件夹的
·Exchange Server 最佳做法分析器快
·WinRoute 介绍
·在前后端Exchange服务器上实现OWA修
·如何让邮件接收者只看到公共IP地址
·Exchange教程之OWA基本管理
·Exchange 2000 Server灾难复原问题
·如何在Exchange 5.5中查看信箱大小
·Exchange备份与恢复小结
·如何Exchange移动数据库文件(三)
·如何查看OMA的安全日志?
·在Exchange Server 2003中使用队列
Power by linux-cn.com 粤ICP备05006655号