- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
笫十章邮件过滤.doc
笫十章:电子邮件的过滤
概述
通过修改在笫八章中编写的按键记录器可以达到从电子邮件程序里记录信息的目的,而通过修改笫七章编写的网络过滤器可以达到区分底层协议和收集电子邮件信息的目的,如果是在使用Microsoft Exchange Server 或者 Lotus Domino Server 的这些商业环境里,还有一个更好的办法,这些公司的电子邮件解决方案提供了扩展客户端功能的接口,这通常是通过使用指定的动态库文件来实现的,如果要在这种环境下进行电子邮件的过滤,我们要做的仅仅是弄明白在目标邮件系统里提供的扩展接口。
本章包括以下内容:
Microsoft Outlook 电子邮件的过滤
安装一个Outlook 客户端过滤器
测试 Outlook 客户端扩展
Lotus Notes 电子邮件的过滤
安装一个 Lotus Notes 电子邮件客户端过滤器
测试 Lotus Notes 客户端扩展
Microsoft Outlook 电子邮件的过滤
关于Microsoft Outlook 的详细描述请查看 /kb/285999 和/kb/199343.它们逐步地描述了如何创建和安装Microsoft Outlook电子邮件客户端扩展的过程。知识库文章 285999 中提供的示例知识库文章 285999Microsoft Outlook 里都是通用的.
在初始化的时候,Outlook 客户端将加载每一个被注册为客户端的DLL,并且调用其导出的ExchEntryPoint函数。ExchEntryPoint 必须实例化一个基于 IExchExt 的派生类,一旦Outlook初始化了这个派生类,它会为每个客户端扩展事件调用一个Install成员函数,如果从Install成员函数返回S_OK就意味Outlook一个客户端扩展已经做好了处理此事件的准备并且期望获得此事件的通知。
要接进行消息的接收,从ExchEntryPoint派生的类必须要包含一个基于IExchExtMessageEvents的类,当已注册的事件被触发的时候消息就会发到这里.,在IExchExtMessageEvents 接口所需要的八个成员函数中,在本章的这个例子里只使用了OnSubmit、OnSubmitComplere和OnWriteComplete这三个。
本章所讲述的客户端扩展只是包含了八个文件,其中有六个都是框架文件,只有两个文件包含来OUtlook客户端扩展的实现。
这两个文件是:
OutlookExtension.cp - 实现的源代码
OutlookExtension.h - 实现文件的头文件
六个框架文件是:
EXCHEXT.H - 客户端扩展所需要的头文件
Stdafx.cpp - 由Visual Studio 创建的包含stdafx.h的文件
Stdafx.h - 由Visual Studio 创建用来定义头和编译选项的
OutlookExtension.dsp - Vsual Studio 的工程文件
OutlookExtension.dsw - Visual Studio 的工作区文件
Readme.txt - Visual Studio创建的用来定义工程结构的描述文件
本章里不会详细去描述这些框架文件。
OutlookExtension.h
OutlookExtension.h定义了Outlook需要的两个客户端扩展类,CMessageEvents 和CClientExtension。这两个类提供了扩展Outlook客户端的接口,CClientExtension类是严格遵守Outlook接口标准的,CMessageEvents类包含了Outlook接口标准和应用程序特定逻辑,文件 OutlookExtension.h还包含了在LogContent用到的文件日志定义。
// Extension Object
// This class must inherit from the IExchExt interface,
// which contains the Install method that Outlook uses to obtain a
// new instance of the Extension Object Class.
// Also, because the IExchExt interface inherits from IUnknown,
// Component Object Model (COM) rules require that this class declare
// and implement
文档评论(0)