VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - MS Outlook 98开发
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:16576, 日期:2002-02-09
Outlook 工具条和菜单

Outlook的工具条和菜单被综合到一个集合中,这个集被称作CommandBars(命令工具条)。这个命令工具条被包含在Microsoft Office 97对象模块里,这使得它完全是可编程的。正如其它的Microsoft Office 应用程序一样,Microsoft Outlook工具条和菜单可以通过用户界面修改。打开Customize对话框(在菜单View下面单击Toolbars,再单击Customize),用户可以右击任何工具条然后修改它,包括其文本、快捷键以及图标。

有一些通用命令能影响多个模块,其它一些命令则只能针对特定模块(修改作用只能对一个模块有效)。例如,将Print命令移动到Help菜单下,这个命令将同时把日历和收件箱的Print命令都移动到Help菜单下。假如用户在日历中将Go to Today按钮移动到File菜单里,这种变化仅仅影响日历模块。用户定义的工具条不是针对专一模块的,总是出现在所有的模块里(只要它被打开)。注意快捷键菜单是不能被定制的。

Outlook工具条和菜单在Outcmd.Dat文件中定义,这个文件位于Application Data文件夹中。您可以定制这个文件,然后使用Outlook 98 Deployment Wizard (ODW,Outlook 98配置智多星)将它包含进您的安装程序包里。下面一节将告诉您如何引用您定制的工具条和菜单,并介绍引用的语法。有关智多星更多的信息,请参见第二章"安装和配置"。

假如在安装过程中,就安装了一个定制的Outcmd.dat文件,用户仍然可以修改他们的工具条和菜单。假如想阻止用户修改定制的工具条和菜单设置,您可以取消访问Toolbars菜单的路径(尽管这个命令仍然会显示在上下文菜单中)。另外,您还可以将Outcmd.dat设置为只读文件。如果删除Outcmd.dat文件,则工具条和菜单将恢复为系统缺省值。

引用工具条和菜单的语法

在程序开发人员看来,Outlook中的主窗口("application window")被当作"Explorer"来引用,框体窗口则被当作"Inspectors"来引用。两种类型的窗口都包含一套工具条和菜单,所以您必需清楚您正在使用哪一类窗口、正在和哪一套工具条和菜单打交道,这一点很重要。

使用Explorer对象来引用Outlook中的主应用程序窗口;这些对象使用ActiveExplorer方法来指向一个打开的窗口,并通过GetExplorer来新创建一个新窗口。使用Inspector对象来引用一个Outlook项或一个框体窗口;这些对象使用ActiveInspector方法来引用一个打开的窗口,并使用GetInspector来新建一个窗口。

使用下面简化的语法,您既可以在Microsoft Visual Basic for Applications(VBA)又可以在Microsoft Visual Basic Scripting Edition (VBScript)中引用工具条和菜单:

Set MyCB = .CommandBars.Item("Menu Bar")

警告 Microsoft提供的编程示例,仅仅是为了说明讨论的问题。没有任何明显的或者暗示性的保证,包括但不仅限于,有关它们对特定目的的可用性和/或可商业化的暗示保证。
例如,下面的Visual Basic for Applications子程序不会产生错误:

Sub TestCommandBars()
Dim ol As New Outlook.Application
Dim myInspector As Inspector
Set myInspector = ol.ActiveInspector
Set MyCB = myInspector.CommandBars("Menu Bar")
End Sub

使用FindControl方法

您可以使用 FindControl 方法来调用Outlook命令(或者与CommandBars对象模块相关的控件),只要您知道Outlook分配给这个命令的内部值。使用这个内部值意味着您可以在运行CommandBar命令时使用更为简洁的语法。

例如,考虑一个定制的Outlook框体,在这个框体中使用一个命令按钮来打印这个框体。假设这个命令按钮叫作cmdPrint,下面的VBScript代码将会显示File Print对话框:

Sub cmdPrint_Click()
Item.GetInspector.CommandBars.FindControl(,4).Execute
End Sub

Sub cmdPrint_Click()
Item.GetInspector.CommandBars.Item("Menu Bar").Controls("File") _
.Controls("Print...").Execute
End Sub


使用下面的Automation代码,您可以得到CommandBars 集的Outlook命令值。此代码必须从Microsoft Word 97上运行;它将创建一个新的文档,并将一个表格化的信息列表插入到该文档。

Sub GetIDsForInspector()

' The Outlook object library must be referenced.
Dim objOL As New Outlook.Application
Dim objCommand As Object
Set cb = objOL.ActiveExplorer.CommandBars

' Create a new Word document.
Documents.Add
With Selection
' 3500 is the maximum # of Controls Outlook has defined.
For I = 1 To 3500
Set lbl = cb.FindControl(, I)
If lbl Is Nothing Then
' Do nothing.
Else
' Insert CommandBar name, Command name, and ID.
.TypeText lbl.Parent.Name & Chr(9) _
& lbl.Caption & Chr(9) & I
.TypeParagraph
End If
Next
End With

End Sub

注意 假如您要为每一类Outlook项或应用程序窗口确定可用的命令,您就可以使用上面的代码例子为该特定项创建一个列表。

Outlook 工具条

Outlook Bar是作为完全的Outlook Bar Groups集合,附属在Outlook 窗口下的。Outlook Bar Groups被保存为一个.fav文件,这个文件位于Application Data文件夹中。当Outlook检测到Outlook Bar需要被刷新时(在安装或者基于命令行的开关),按照 Outlbar.inf 文件中的指令执行,从而相应地安装Outlook Bar Groups 和快捷键。典型地,Outlbar.inf 文件和Outlook是位于同一文件夹里(\Program Files\Microsoft Office\Office by default)。您可以定制Outlbar.inf文件,然后使用Outlook 98 Deployment Wizard (ODW)将它包含进您的安装程序里。有关智多星(ODW)更多的信息,请参见第二章"安装和配置"。

如果找不到Outlbar.inf文件,用户将会得到一个错误信息。程序管理员可能会用不同的文件名来为原来的Outlbar.bar做一个备份,并把它放到安装目录下以便增加产品的维护性能。在附录A 的"Sample Outlbar.inf 文件"中有一个Outlbar.inf文件的例子。

Outlbar.inf 文件的格式

Outlbar.inf文件和任何 .ini 或 .inf 文件都是一致的。它是一个包含许多小节的文本文件。每个小节有一个小节头,可能包含各种命令和属性。一个小节的名可能包含一系列按字母表顺序排列的字符集合,但不可以包含任何空格。下面的表描述了基本的Outlbar.inf文件小节。


小节
描述
[Version]版本 必需的。为验证Outlbar.inf 文件提供基本版本信息。


[DefaultOutlookBar] 必需的。一旦建立了缺省的Outlook Bar,这个小节就会运行。它还包含了指向其它小节的指针,在这些小节中说明了所要创建的组合和快捷键。


[DefaultOutlookBarPIMOnly] 假如Outlook被设置成PIM Only模式,在[DefaultOutlookBar]处使用。


[DefaultOutlookBarNoIFM] 假如在设置Outlook时没有安装Integrated File Management (IFM,集成文件管理),在[DefaultOutlookBar]处使用。


[DefaultOutlookBarPIMOnlyNoIFM] 假如Outlook被设置成PIM Only模式,并且在设置Outlook时没有安装Integrated File Management (IFM,集成文件管理),在[DefaultOutlookBar]处使用。


[UpgradeOutlookBar] 在[DefaultOutlookBar]处使用,假如您正在从Outlook 97中升级。如果使用了[UpgradeOutlookBar] ,则是[UpgradeGroupSections]而不是 [GroupSections]会起作用。

[GroupSections] 代表一个Outlook Bar Group. 这个小节包含指向 [ShortcutsSections]所代表的快捷键的集合的指针.

[UpgradeGroupSections] 在[GroupSections]处使用,假如您正在从Outlook 97中升级。如果使用了[UpgradeOutlookBar] ,则是[UpgradeGroupSections]而不是 [GroupSections]会起作用。

[ShortcutsSections] 代表的快捷键的集合。这个小节包含指向 [ShortcutsSections]所描述的快捷键的指针.

[ShortcutSections] 说明单个快捷键的属性。


[Strings] 可选项。列出整个Outlbar.inf 文件中所使用的局域化字符串。

[Version]
对所有的Outlbar.inf文件,下面的格式定义了标准的小节头:

[Version]
Signature="$Chicago$"
OutlookInfVersion=1

假如签字signature不是$Chicago$ ,或者假如OutlookInfVersion没有被说明,Outlook将会认为此 .inf 无效。在识别signature字符串时,不区分大小写。

[DefaultOutlookBar]
[DefaultOutlookBar] 小节为您指定的[GroupSections] 创建快捷键组。这儿可以使用下面的基本格式:

AddGroups=
[,] . . .

每一个被列出的小节必须与Outlbar.inf 文件中的小节一致。下面的例子就是表示一个指定的 [DefaultOutlookBar] 小节,该 [DefaultOutlookBar] 小节要创建三个快捷键组:

[DefaultOutlookBar]
AddGroups=OutlookGroup,MailGroup,OtherGroup

在这个例子里,Outlbar.inf 文件要包含至少三个定义每组内容的其它小节。

[GroupSections]
[GroupSections] 包含三个部分:

Name=
这一属性,使本小节为 Outlook Bar Group 指定一个名字。假如省略这一属性,则采用小节名作为其名字。
Shortcuts=
[,] . . .
列出指向 Outlbar.inf 文件中其它小节的指针,这些小节描述组的快捷键集合。这种类型的每一个小节代表一个Outlook Bar Group。
ViewType=
假如值设置为1,则以小图标模式创建组。
假如您正在从Outlook 97中升级,并且正好使用的是[UpgradeGroupSections],这些命令指定了那些您想要在组中改变的值。同样,OldName命令指定了前一个您想改变的组名;ShortcutsGroupIndex 命令(整数值)指定了您必需为一个特定的索引中的组添加的快捷键。而不是OldName命令所指定的组。

下面的例子显示了一个典型的[GroupSection]:

[OutlookGroup]
Name=Outlook
Shortcuts=OutlookShortcuts

如果小节的名字被作为[DefaultOutlookBar]小节中的命令参数使用,这个命令影响该小节和其内容。例如,上面的范例小节被[DefaultOutlookBar] 小节中AddGroup命令引用,则一个显示名为"Outlook"的组将会被创建,它包含了所有在OutlookShortcuts小节中列出的快捷键。
下面的例子描述了一个名为OBG的空组:

[OBG]
; I'm a lonely, empty group since my
; author left out the Shortcuts property.
;
; I also have an ugly name, OBG,
; since my Name property was forgotten.

如果这个小节出现在AddGroup命令中,将会创建一个名为OBG的空组。

[ShortcutsSections]快捷键类小节
下面的语法使您能列出一个快捷键,作为[ShortcutsSections]的一部分:


[={, | ,[],}]

快捷键的属性在这一行程序所指向的[ShortcutSection] 中被说明。您还可以设置Target属性(这是可选的),同名的[ShortcutSection]就会被忽略;其它所有属性采用缺省值。

[ShortcutsSections] 依次列出了一系列快捷键,如果一个小节被[GroupSections]中的Shortcuts命令引用,它将被看作该组的一个元素。 因此,所有命令将影响那个组中的快捷键。

例如,考虑下面 Outlbar.inf文件中的一段代码:

[DefaultOutlookBar]
AddGroup=OutlookBarGroup

[OutlookBarGroup]
Shortcuts=OutlookShortcuts

[OutlookShortcuts]
Inbox

假如Outlook处理这一段程序的话,将会创建一个名为OutlookBarGroup的工具条组。该工具条组就会装入一个图标,一个收件箱。

下面是一个典型的[ShortcutsSection]例子:
[OutlookShortcuts]
Inbox=1,1 ; Special syntax. No need for an [Inbox] section.
Calendar
Contacts=1,3 ; Also uses special syntax.
Tasks
Journal
Notes
DeletedItems

注意 这儿是使用可选语法来为收件箱和 Contacts 快捷键指定 Target 属性的。因为其它快捷键使用标准语法,所以在这个例子中我们还预期得到了下面的[ShortcutSections]: [Calendar], [Tasks], [Journal], [Notes] 以及 [DeletedItems]。

[ShortcutSections]快捷键小节
快捷键小节包含两个部分:

Target=
{, | ,[],}
必需地。指定快捷键的标记。
Name=
可选地。为快捷键更改缺省名,该缺省名是由 域确定的。
每个[ShortcutSection] 描述了一个单一快捷键,并且它必需有一个目标。您可以通过设定Name属性来改变显示名(这一工作是可选地)。您可以使用 域或者域来指定目标。如果使用的是 域,则 域必需为0值 (作为占为符), 并且 域必需为全名路径(例如:\\Public Folders\All Public Folders\Office),或者是从属于缺省存储目录的路径 (例如, Inbox\subfoldername)的。

下面是 域的可用值:

MAPI namespace 整数值1。指向MAPI文件夹的快捷键。如要想知道有效代码列表,请参见本章"MAPI Namespace 代码"。
File System namespace 整数值2。指向文件系统对象(文件)的快捷键 。如要想知道有效代码列表,请参见本章"File System Namespace Codes"。
下面的例子显示了一个缺省的MAPI日历文件夹的[ShortcutSections]:

[Calendar]
; See REF _Ref387687560
; \* MERGEFORMAT Appendix A for MAPI codes
Target=1,1 ; 1 is Calendar

[Strings]字符串
这个小节必需被命名为[Strings],可使用如下格式:

=

这一小节定义一个或多个域。必需有一个唯一的由字母和数字组成的名字。是一个包含字母、数字或其它可打印字符的字符串。如果相应的被一个需要双引号的项使用,则该字符串()必需用双引号括起来。

尽管[Strings]小节一般都是Outlbar.inf 文件的最后一个小节,但在这一小节定义的 可以在 Outlbar.inf 文件中的任何地方被使用。Outlook 扩展 到给定的字符串,并且可以为将来的处理中所使用。一个被其它小节使用的必需放在两个百分号(%)之间。另外,[Strings] 小节还使得翻译字符串以便于国际化更加简单,这只要通过把所有能被Outlook Bar显示的字符串放置到Outlbar.inf文件的一个单一的小节里就可以实现。

下面为一个 Outlbar.inf 样本文件举例说明[Strings] 小节:

[Strings]
OUTLGRP="Outlook"
MAILGRP="Mail"
OTHRGRP="Other"

这个例子说明如何使用[Strings]小节的一个字符串:

[OutlookGroup]
Name=%OUTLGRP% Group ; Names the group "Outlook Group"
Tasks

String Substitution 字符串替换
Outlbar.inf 文件能为一个局域化字符串表格提供支持。Outlbar.inf 文件可以包含一个[Strings] 小节,该[Strings] 小节是用来为替换提供字符串表格的。通常,Outlbar.inf 字符串表格应该包括所有在 Outlook Bar用户界面出现的字符串。

下面的例子说明了一个典型的字符串替换:

[MyGroup]
Name=%GROUPNAME% ; %GROUPNAME% is expanded to "Microsoft Ren"

[Strings]
GROUPNAME="Microsoft Ren"

Comments注释
注释可以出现在Outlbar.inf 文件的任意一行。注释行以一个分号(;)来开头,注释文本出现在分号和该行行末之间。值得注意的是引号里的分号并不会用来引导注释。

在下面的例子里,文本体是一个注释:

[Inbox]
Name="Hello;World" ; This also sets the display name

MAPI Namespace 代码

下面的表格是为[ShortcutsSections] 和[ShortcutSections]所使用的代码定义值的:


值 特定文件夹 图标
0 Inbox Inbox
1 Calendar Calendar
2 Contacts Contacts
3 Tasks Tasks
4 Journal Journal
5 Notes Notes
6 Deleted Items Trash can
7 Sent Items Sent Items folder
8 Outbox Outbox Tray
9 Drafts Drafts folder
10 Outlook Today Outlook Today
11 Public Folders Root Generic store
12 Public Folder Favorites folder Mail folder
13 News News
14 User Public Folder Favorites None
15 User Store folders None

File System Namespace 代码

下面的表列出了您可以在File System namespace中使用的值。这些值是从Win32 Software Developer's Kit (SDK)所设置的常数中查阅得来的。要想知道有关这些常数的更多信息,请参考SDK。

值 Win32常数(在SHLOBJ.H) 解释
0 CSIDL_DESKTOP 桌面管理系统程序文件夹
1 CSIDL_INTERNET Internet网
2 CSIDL_PROGRAMS 开始菜单程序文件夹
3 CSIDL_CONTROLS 控制面板
4 CSIDL_PRINTERS 打印机
5 CSIDL_PERSONAL 我的文档
6 CSIDL_FAVORITES Internet Favorites书签文件夹
7 CSIDL_STARTUP 开始菜单程序启动文件夹
8 CSIDL_RECENT 当前文档;包括连接
9 CSIDL_SENDTO 包含放置在Send To快捷键菜单下的项
10 CSIDL_BITBUCKET 回收站
11 CSIDL_STARTMENU 开始菜单文件夹
16 CSIDL_DESKTOPDIRECTORY 桌面管理系统程序文件夹
17 CSIDL_DRIVES 我的电脑
18 CSIDL_NETWORK 网上邻居
19 CSIDL_NETHOOD 查阅Win32 文档
20 CSIDL_FONTS 字体文件夹
21 CSIDL_TEMPLATES 查阅Win32 文档
22 CSIDL_COMMON_STARTMENU Common Start Menu 文件夹
23 CSIDL_COMMON_PROGRAMS Common Start Menu Programs 文件夹
24 CSIDL_COMMON_STARTUP Common Start Menu Programs Startup文件夹
25 CSIDL_COMMON_DESKTOPDIRECTORY Common Desktop 文件夹
26 CSIDL_APPDATA 查阅Win32 文档
27 CSIDL_PRINTHOOD 查阅Win32 文档
28 None Outlook 安装目录
29 CSIDL_ALTSTARTUP 查阅Win32 文档
30 CSIDL_COMMON_ALTSTARTUP 查阅Win32 文档
31 CSIDL_COMMON_FAVORITES 查阅Win32 文档
32 CSIDL_INTERNET_CACHE Internet Explorer Cache 文件夹
33 CSIDL_COOKIES Internet Explorer Cookies 文件夹
34 CSIDL_HISTORY Internet Explorer History 文件夹

预定义替换字符串

Outlook包含很多预定义字符串,您可以在Outlbar.inf文件中使用它们。这些字符串根据它们的最终用户设置可以延伸到各种目录位置,但您不能在[Strings]小节使用这些字符串。
下面的例子说明了一个预定义的替换字符串:

[Notepad]
%11%\NOTEPAD.EXE ; %11% is the user's Windows System directory

下面的表列出了可用的替换字符串:

ID号 位置

01 正在操作的系统的位置Location of the operating system
10 Machine 目录 (maps to the Windows 目录 on a server-based setup)
11 Windows 系统目录
12 Windows 系统驱动目录
13 Windows 指令目录 (Windows 95才有)
17 Windows INF 目录
18 Windows 帮助目录
20 Windows 字体目录
21 Windows 浏览器目录
22 Windows VMM32 目录 (Windows 95 才有)
23 Windows Color 目录 (Windows 95 才有)
24 Root of the drive containing the Windows 目录
25 Windows 目录
26 Guaranteed boot device for Windows Winboot (Windows 95 才有)
28 Host Winboot (Windows 95 才有)
30 Root 目录 of boot drive
31 Root 目录 for the host drive of a virtual boot drive - compressed volume
(Windows 95 才有)

今日Outlook

Microsoft Outlook 98包含一独特的"at a glance(一览)"视窗叫做Outlook Today。这个视窗使用用户熟悉和颇具吸引力的Web页风格显示了很多用户信息,包括日历、任务、e-mail以及联络。Outlook Today列出了将要进行的约会、指出何种任务到期、提醒用户搜索Outlook 以便联络、并且显示用户收件箱中未读过的新e-mail 数。Outlook Today页上的每一项都是一个连接到Outlook 项或视窗的超级连接,因此用户可以获得更多的有关会议的特定信息,或者核对一个已经完成的任务。最终用户可以使用Outlook Today Options 页来定制自己的Outlook Today。例如,选项页让最终用户改变要多少天的会议。

Outlook Today在HTML页上显示信息,该HTML页允许由企业开发人员和解决方案供应商进行有限的改动和定制。Outlook Today可以被认为是一个对Outlook 用户有用的信息主页,因此,它提供了一个很好的机会来发布公司内部网络或者公众Internet网的内容。例如,您可以创建一个标准的Outlook Today页来显示公司新闻通告,并且还能创建从Web上摘取的实时股票市场数据的证券报价机。一个Outlook Today页的定制版本还可以包括从企业其它应用程序里提取的信息(例如,财务报表或金融管理软件),设置一个能完成一个组织内的特定工作的Outlook Today页。例如,您可以分别为市场销售部的员工、财务部、高级管理创建一个Outlook Today页。

Outlook Today使用数据捆绑,一种Microsoft Internet Explorer 4.0的新特征,将页上的一个HTML表连接到Outlook 98数据源,这是通过一个ActiveX数据源控件实现的。这个页分别为日历、邮件、任务小节部分配置了独立的数据捆绑表格。当此页被装载之后,数据源控件收集合适的Outlook信息,并将它显示到捆绑表上。一旦信息源被更新或者创建了新的项,数据捆绑控件将动态更新他们的捆绑表而不刷新页。(若要了解更多的关于数据捆绑的信息,参见Internet Client SDK)。您可以用下面的方法定制Outlook Today页:

添加文本、连接和图象

添加脚本

添加ActiveX 元件

改变风格(背景、字体等)


定制Outlook Today页。因此,当您添加内容和功能到Outlook Today页时,必须牢记下面的限制:

尽管Outlook Today页给用户提供了有力的省时快速视图,但它既不是想要代替收件箱、日历或任务模块,也不是 想要替代Web 浏览器。您应该把 Outlook Today页看作一个发布个人、内部网和Internet网信息的一种初步的概括性的工具。

修改Outlook Today 页,当在此页上进行信息传递(包括信息的提交和提取)时,可能会导致性能的降低。同样,您应该把Outlook Today 页看作是一个起点性的工具,利用它用户可以在刚启动时读取信息或者每日/周周期性地登记注册查看信息。

Outlook Today 页预计将来会更改产品版本。因此,对在Outlook 98中运行的Outlook Today页的任何改变,在未来的Outlook 版本都可能需要进行升级

您可以通过添加连接或控件来修改Outlook Today 页,这些连接或控件是联结到不可信的外部Web网址或内容供应者的。Outlook Today 页不验证URL的密码,该密码或者是您在注册簿给Outlook Today设置的,或者是您在Outlook Today框架里浏览到的页设置的。包含不加保护内容的Outlook Today页有能够会使个人用户或者整个组织面临危险,包括病毒入侵与数据破坏
Note注意 假如在您定制的页上必需包含连接到不可信任的外部网址,确保在新打开的浏览器窗口激活URLs 以便利用浏览器的安全保护性。如果想得到详细指导,请参见本章"定制详解"部分。
您不能添加Outlook Today 页作为Active Desktop的项。Outlook Today 页只有下挂在Outlook 窗口才能正常运行。

发布您定制的Outlook Today页

发布一个定制好的Outlook Today页,有三种方法:

定制的.dll 文件。您可以将定制的Outlook Today页保存为.dll文件,在缺省的Outlook Today页的位置上浏览它;要了解更多信息,请参见本章 "高级定制"部分。这种方法使用 res:// 协议。 例如,缺省页的协议为res://Outlwvw.dll/Outlook.htm。 对于任意一路径,使用下面的格式:
"Url" = "res://C:\Program Files\Microsoft Office\Office\Outlwvw.dll/Outlook.htm"
-或者-
"Url" = "res:///"

Web 服务器。 因为Outlook Today挂接Internet Explorer 4.01浏览器,您可以在个人或公司的Web服务器上,将定制的Outlook Today 页保存为.htm 或 .asp 文件; 要了解更多信息,请参见本章"基本定制"部分。 这种方法是使用http://协议(例如"Url" = "http://corpweb/users/outlook.htm")。

文件/网络 您可以在本地硬盘或公司网络上,将您定制的Outlook Today页保存为一个.htm 文件;如果想要了解更多信息,请参见本章"基本定制"部分。这种方法使是file://协议(例如"Url" = "file://C:\myfile.htm")。
因为高级定制采用了性能提高技术,微软推荐把您的定制页保存为.dll文件。这样在装载时,速度就会比您利用"Web 服务器" 或者"文件/网络"要快得多。通过使用Outlook 98 Deployment wizard,您就可以分散您定制的.dll文件并且改变Outlook Today注册表键,以便指向您的定制页。想要了解如何将您定制的.dll文件添加到安装程序包里,请参见第二章"第二步:Specify Custom Active Setup Components(指定用户Active设置元件)";想要了解在安装过程中如何添加注册表键,参见第二章"第五步:添加注册表入口"。

基本定制

利用基本定制,您可以定制Outlook Today 页,并在硬盘上、网络上、Web服务器上将它保存为.htm文件,这只要使用一个简单的三步过程。您将需要了解的知识包括有关HTML和Windows注册表的工作原理;而并不要求您了解编辑一个用户定制的.dll文件所必需的工具,也不要求您具备编辑一个用户定制的.dll文件所必需的能力。

假如您对Microsoft Developer Studio或者类似的资源编辑器非常精通,微软推荐您直接跳到本章的"高级定制"部分。利用高级定制,可以把您定制的Outlook Today页保存为.dll文件,这样将会得到更佳的性能。

第一步:获取Outlook Today资源
特别注意 假如从Outlook 98 Deployment Kit CD中直接拷贝Outlook.htm 源文件,您可以跳过这些步骤直接进入第二步。

在 Internet Explorer上,进入下面的URL:
res://C:\Program Files\Microsoft Office\Office\Outlwvw.dll/Outlook.htm
注意.dll文件后面的斜杠(/)。如果将Outlook安装在一个非缺省目录下您可能要改变到URL的文件路径。

Outlook.htm将要产生一个描述错误,这是因为它没有下挂在Outlook窗口中。当您收到一个错误消息时,单击No ,Outlook Today HTML 页就显示出来了 (没有图象和数据表)。

在View 菜单下,单击Source 可以在Notepad(写字板)中打开Outlook.htm源文件的拷贝。

在 File 菜单下,单击Save As,将这个文件保存到硬盘上。
注意 因为Outlook Today 使用特定的layout 属性,所以它不会正确地显示在Microsoft FrontPage 98 或其它 HTML 的编辑器中。

文本display:none 在该文件里出现了三次。搜索并用文本display:替换所有三个display:none。这种改变是必需进行的,因为源文件是被设计成.dll文件,并且要用res:// 协议来装载。不过在这里,您把它保存为.htm 文件, 而且是用http:// 或 file://协议装载的。
第二步:为注册表添加正确的设置

找到下面的注册表键:
HKCU\Software\Microsoft\Office\8.0\Outlook\Today

假如该键不存在,则添加该键。

在这个键中添加字符串值Url (该值对大小写敏感)。要知道该值数据,键入到Outlook.htm 文件的确切路径,这个文件是您在第一步的第四个步骤中保存的。例如, Url 可能包含下面的数据:file://C:\My Documents\Outlook.htm

注意 假如某一时刻,您想恢复注册表并且回到原来的Outlook Today页,只要删除Url 注册表键。这样,Outlook 就会指向原来的Outlook Today 页。


第三步:修改您新建的Outlook Today页

启动Outlook,进入Outlook Today。
三个数据表(日历、邮件以及任务)提交将会很慢,它们是一行接一行显示的,而不是一下子全部显示出来。这是因为您正在浏览的页是和http:// 或 file:// 协议一起装入的。

修改HTML。
要想了解有关您能够进行哪些类型的改变(例如添加一个连接或图象)的信息,请参见本章"定制详解"部分。

注意 在Outlook Today页上,您不能定制已经存在于日历、邮件以及任务数据表中的数据、排序或者过滤器,尽管您可以取消已有的邮件表并加上您自己的邮件表。

高级定制

用资源编辑器,比如Microsoft Developer Studio,您就可以将自己定制的Outlook Today页保存为.dll文件,只要使用一个五步过程即可。高级定制允许您使用本章"性能影响"部分所描述的性能增强技术。

特别注意 下面的指导只是对Microsoft Developer Studio 5.0 有效。您必须使用Microsoft Developer Studio 5.0 (早期的版本可能也适用)或者具有类似性能的资源编辑器。另外,您还必需是在Windows NT上使用。 Developer Studio 不支持运行在Windows 95上的可执行文件的资源替换。

第一步: 拷贝原来的 Outlwvw.dll 资源文件

找出Outlwvw.dll 资源文件,缺省情况下,该文件被安装在C:\Program Files\Microsoft Office\Office 文件夹中。

制作一个Outlwvw.dll的活动拷贝(例如,Outlwvw_custom.dll)。

警告 不要修改或删除Outlwvw.dll文件,这个文件既包含了Outlook Today 的源文件,又包含了Find 和Organize 特征的源文件。假如您要创建一个定制的.dll文件。必须给新的文件一个不同的名字,并相应地在注册表中更新URL的设置。

第二步: 为注册表添加正确的设置

找出下面的注册表键:
HKCU\Software\Microsoft\Office\8.0\Outlook\Today
假如该键不存在,则添加此键。
在这个键中,添加字符串值Url。如果想要知道这个值数据,键入联接到Outlwvw_custom.dll 文件中的Outlook.htm 文件的路径,这个文件是您在第一步的第二个步骤中保存的。您必须使用res:// 协议。例如,Url 可能包含下面的数据:
res://C:\My Documents\Outlwvw_custom.dll/Outlook.htm
注意.dll 文件名后的斜杠(/)。
注意 假如某一时刻,您想恢复注册表并且回到原来的Outlook Today 页,只要删除Url 注册表键。这样,Outlook 就会指向原来的Outlook Today 页。

第三步: 打开资源.dll 文件

在Windows NT下,启动Microsoft Developer Studio。

在File 菜单下,单击Open。

选中Outlwvw_custom.dll 文件,这是您在第一步的第二个步骤保存的文件。

在 Open as 对话框里,单击Resources。

单击 Open 来打开Outlwvw_custom.dll文件。

双击树节点2110 打开它。

双击Outlook.htm 节点。
您现在一定是在Developer Studio的二进制编辑器中,文本出现在窗口的右边,十六进制数出现在窗口的左边。

第四步: 修改HTML
您可以通过在Developer Studio二进制编辑器中直接编辑文本的方法来修改HTML文件,但是在这个二进制编辑器中工作是非常困难的。而另外一种修改HTML文件的方法就要容易得多,那就是在一个独立的文本编辑器中拷贝HTML文本内容并将它粘贴到Developer Studio编辑器中。

在Developer Studio中,选择所有的 .dll 文件文本,拷贝它。

打开一个文本编辑器,例如写字板,将文件粘贴进去。

修改HTML。
要想了解有关您能进行哪些类型的改变(例如添加一个连接或图象)的信息,请参见本章的"定制详解"部分。

当您完成了上面的工作,选中所有的文件文本,拷贝它们,然后将它们粘贴回Developer Studio里的.dll 文件中。

保存Outlwvw_custom.dll 文件。

在Outlook 上浏览这个Outlook Today 页。您将会看到已经修改过的页。

特别注意 在HTML上,您会看到三个带有注释的 区域。假如您想改变日历、邮件或任务数据捆绑表的页面布局,那么您还需要同时修改那些与它们相关的RENSTATICTABLEs。要想了解更多有关这方面的信息,请参见本章的"关于 RENSTATICTABLE"。

如果您正在修订和测试一大堆的改变,您可能会喜欢使用下面这种替换方法来修改HTML:

在Developer Studio中,选中所有的.dll 文件文本,拷贝它们。

打开一个文本编辑器,比如写字板,把文本粘贴进去。

将这个文件保存在硬盘里。

使用file://协议,将Outlook Today 注册表设置关联到被保存的文件。

搜索并用display:替换三个display:none 。(因为您正在使用file:// 协议,如果没有这一步,活动的数据捆绑表将是不可见的)。

改变这个文件。
要想了解有关您能进行哪些类型的改变(例如添加一个连接或图象)的信息,请参见本章的"定制详解"。

撤消在第五步中所做搜索和替换的操作,为res://协议格式准备文件。

当您完成了上面的工作,选中所有的文件文本,拷贝它们,然后将它们粘贴回Developer Studio里的.dll 文件中。

保存Outlwvw_custom.dll 文件。

正确地设置注册表(res://<到 Outlwvw_custom.dll的路径>/Outlook.htm)。
进入Outlook Today,查看修改过的页。
注意 在Outlook Today页上,您不能定制已经存在于日历、邮件以及任务数据表中的数据、排序、过滤器,尽管您可以取消已有的邮件表并加上您自己的邮件表。

第五步: 为.dll 文件添加图象
假如新建的HTML文件引用了原来的Outlwvw.dll资源文件中没有的图象,您可以利用资源文件的性能优势,将这些图象包含到Outlwvw_custom.dll文件中。您可以包含一个.gif、 .jpeg或者其它类型的图象文件(这是可选的,您总可以将图象文件当作常规文件保存在硬盘上)。

使用一个图象编辑器,创建您想要的.gif 文件。

在Developer Studio上,打开Outlwvw_custom.dll 文件,然后双击树节点2110。

选中任一已经存在的.gif 资源。

在Edit 菜单下,单击Copy,然后单击Paste ,在2110树节点下创建这个 .gif 资源的备份。(例如:如果您拷贝了Calhdr.gif 并且粘贴它,您将会得到一个叫做Calhdr.gif1的复制品)。

右击这个复制资源,单击Properties,然后将它的名字改变成您所喜欢的名字(例如"Whatever.gif")。
记住,您必需包含这个名字上的引号。

在Developer Studio上,打开您在第一步中创建的.gif文件。

在File 菜单下,单击Open。

在Open as 对话框里,单击Binary。

在Edit 菜单下,单击 Select All 来选中所有的文件文本。

在File 菜单下,单击 Copy。

关闭这个文件。

双击新建的Whatever.gif 资源,打开它,并用您在第10步中拷贝的数据来替换这个文件中的数据。

关闭Whatever.gif 文件窗口,并保存Outlwvw_custom.dll 文件。
现在,您的.gif 文件被当作一个资源嵌入到了Outlwvw_custom.dll中。为了利用资源文件的性能优化,您可以在Outlook.htm文件中调用它,采用 res://Outlwvw_custom.dll/Whatever.gif 格式。

定制详解

这一部分介绍修改Outlook Today页的不同方法。

添加文本和图象
Outlook Today 页是一个HTML页,它使用级联风格页面(CSS),因而画面具有标准的HTML 标签和 CSS 属性。您可以采取与在任何其它HTML页上添加文本或图象一样的方式,来为这个页添加文本或图象,如果想要知道如何使用 CSS 属性的更多详情,请参见 Internet Client SDK.
注意 原来的页使用res:// 协议来指向它的图象(例如:res://Outlwvw.dll/Calhdr.gif)。假如您提供自己的图象文件,那您就可以使用file:// 或http:// 协议(例如:file://C:\My Documents\myimage.gif)。

添加连接
为了连接到一个外部的Web网址,您是不能使用一个简单的HTML超级连接来实现的。相反,您必须使用下面的语法,在一个新的浏览器窗口中启动该连接,在那里允许您采用浏览器安全保护性能。

警告 在连接到外部的不可信任的Web 网址时,要特别小心。假如您为自己的页添加了一个简单的超级连接,在缺省情况下,Outlook将会在Outlook Today窗口中跟踪这个连接。 因为在Outlook Today中,安全保护总是不起作用,所以没有安全保护措施来保证您不去访问那些包含有不安全内容的网址。

要想连接到本地的Outlook 文件夹,使用下面的语法:

Sent Items

要想连接到Exchange Server Public文件夹,使用下面的语法:

Favorites

改变字体风格
修改页上方的风格页面定义,您就可以修改页上的大多数字体。例如,下面的代码为一个完成了的任务、一个重要的项以及页上方的日期定义了一个文本风格:

.TskDone {font-size:8pt; color:gray; text-decoration:line-through; }

.itemImportant {color:red}

.date {font-size:11pt;font-family:arial;text-decoration:none;
font-style:normal;color:white;font-weight:bold; }

在某些情况下,这些风格在该页稍后的代码中就会被引用。但有时候,比如上面的"TskDone" 和"itemImportant",引用这些风格的语句是在三个主数据捆绑表中动态产生的(这三个主数据捆绑表是日历、邮件和任务),您是绝不会看到它们在代码中被引用的。

例如,当一个任务已经完成后,您在任务表中检查它时,数据捆绑表自动地为该文本使用"TskDone"风格。因为"TskDone"风格被定义成灰色strike-through,所以已经完成的任务的文本也将使用同样的风格。然而,您可以任意改变这种风格。

添加辅助ActiveX控件
您可以为页添加ActiveX控件,就象在其它HTML页上添加ActiveX控件一样。然而,由于安全保护措施在Outlook Today中被取消了,所以您必需在为页添加控件之前,确保这个控件的可信度。例如,这就是一个有趣的操作,在您的页上添加Microsoft Investor 证券报价机(http://investor.msn.com)。

要想得到更多有关如何创建自己的ActiveX控件,包括数据捆绑控件的信息,请参见 Internet Client SDK.

添加脚本
使用脚本,您可以充分利用Outlook对象模块。然而,要小心,不是使用任何一个可理解的脚本语言性能都那么好。下面的这个JavaScript 例子输出了Outlook的Application对象,并使用它在一个新的Outlook窗口中打开收件箱:







取消Outlook Today

您可以关闭Outlook Today,显示根目录的内容(与Outlook 97类似)。

关闭Outlook Today

在注册表编辑器里, 找到下面的注册表键:
HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Outlook\Today\

添加新的DWORD 值, Disable。

修改这个Disable 值,将它的值数据设置为1。
您可以再次激活Outlook Today,只要删除Disable 注册值或者将它设置为0。

性能影响

与原来页的性能相比,使用高级定制定制的页,其性能并没有降低,哪怕您为这个页添加了连接或图形。使用基本定制,唯一的性能差别是您的Outlook数据(日历、邮件、任务)将会显示得更慢一些,当页被装载时,数据一行一行显示出来。比较发现,在原来的页里,数据基本上是立即显示出来的。当它在浏览器里被装载以后,定制页和原来的页就不会有任何性能上的差别了。

就和任何Web页一样,您添加的元素越多(例如图形,脚本、ActiveX控件),装载时间就会越长。另外,您的邮件支持和所存储的项数也会影响页的性能。如果使用一个"公司/工作组"结构,将会导致性能降低(构造页需要对服务器进行很多调用)。存储的项数越多,显示它们的时间就越长。例如,在一台Pentium 120( 带有32 MB RAM)计算机上,使用Internet Only结构、中等的存储容量,其性能差别大约是4秒钟。

为了改善HTML的数据提交和数据捆绑性能,微软采用了下面的增强技术:

文件编译到一个资源.dll 文件里。 Outlook Today 源 HTML 和.gif 文件被编译到一个资源文件Outlwvw.dll里,这使得Outlook装载页更快一些。这个Outlwvw.dll文件被安装在...\Program Files\Microsoft Office\Office 目录下。


res:// streaming and processing. 当您用res://协议指定一个URL时,Outlook在这个页上执行特定的streaming and preprocessing。当您使用http:// 或 file://协议时,则不会如此。

当页第一次被装载时,要花一些时间让数据捆绑表收集和提交它们的全部数据。为了避免这个延时,让信息在被装载时显示得更快一些,Outlook一开始就隐藏了三个数据捆绑表,把它们替换为暂时的、原始的HTML 表。当HTML从资源 .dll 文件里流出时,Outlook 建立了暂时的静态表(与活动的数据捆绑表包含同样的信息),并把它们直接插到了流里 (在RENSTATICTABLE 标签处)。结果,比起等待数据捆绑表的完成来说,您的Outlook信息显示得就更快一些。

当页被装载后,隐藏的数据捆绑表激活,并且收集它们的数据。这些工作完成之后, Outlook 隐藏暂时静态表,并使活动的数据捆绑表可见。在日历和邮件表中,并不会感觉到这种从静态到动态表的切换,但是,您可以在任务表中看到这种切换(当检查框出现时)。
注意 这种性能增强技术只能对这些页起作用:它们是通过res://协议而不是通过http:// 或file:// 协议装载的。

关于RENSTATICTABLE

在HTML页上,您将看到三个带有注释的RENSTATICTABLE 块。当Outlook通过res:// 协议读页时,它用这三个块来决定如何插入暂时静态表。

下面我们举个例子,来考察定义日历的块(包括活动和静态表):






















这个块包括两个部分:Live Databinding Table(活动数据捆绑表)和Temporary Static Table(暂时静态表)。有如下相关元素:

display:none
这是一个CSS 属性,它告诉页要隐藏活动数据捆绑表。当页装载时,活动数据捆绑表被隐藏,而暂时静态表将是可见的。然而,当活动数据捆绑表收集完所有的数据之后, Outlook 自动取消display:none 属性,并删除静态表。在大多数情况下,这种切换是感觉不到的。



这个元素告诉Outlook"要在这儿插入一个暂时静态表"。这个标签下的属性描述了如何构造这个表,这给了您必要的控制能力来决定Outlook如何来构造它的暂时静态表。在大多数情况下,您可能想使静态表看上去象动态表一样,这样它们间的切换就不会被感觉到。
注意,RENSTATICTABLE 语法的各个部分对应着一个活动表定义中相应的部分。


~Calendar
这个元素标识了包含从Calendar取得数据的静态表。


~Next=valign=top width=10
这个元素告诉Outlook 要用下面的语法,为表的每一行增加第一列():


...
{inserts "Next" data here for each row}
...


这一列包含了三角形标记指示"下一个/当前约会"("Next/Current Appointment")。


~StartEnd=valign=top nowrap
这个元素告诉Outlook为每行增加另外一列:


...
{inserts "StartEnd" data here for each row}
...


这一列包含了每个约会的开始和结束时间。


~SubjectLocation=valign=top
这个元素告诉 Outlook 为每行增加最后一列:


...
{inserts "SubjectLocation" data here for each row}
...


这一列包含了每个约会的主题和地点。


~
最后的"~" 是必须的。它标志着这个命令的结束。


CalendarSubjectLocation 风格, InboxCount 风格, 等等
当Outlook 构造单元格时,它为单元格标签增加了一个类的属性,这个标签是表名和列名的联合:

+
这允许您为表的每一列设置单元格风格。您可以在Outlook.htm文件的顶端,用CSS 风格定义设置这些风格。您会注意到有两种定义已经存在:

CalendarSubjectLocation {margin-left:10px;color:windowtext;}
.InboxCount {margin-left:13px;}

Outlook 安全保护

Outlook 98使用的安全保护模式,既不同于Outlook 97的也不同于以前的Microsoft Exchange客户的。在以前的Microsoft Exchange Server安全保护基础上,Outlook 98 增加了对 S/MIME 的支持。S/MIME安全保护既能在整个Internet网,又能在一个组织内部,用来发送和接收被保护的e-mail消息。

通过使用公共密钥与私人密钥来发送和接收签字以及加密的邮件,Outlook 98的安全保护模式确保了Outlook 98 e-mail消息的安全。这包括数字签字,它使得用户能够验证发送者的身份以及消息的可靠性;还有数字加密,它保护消息的内容避免被其他无关的接收者阅读。用户可以和其他邮件客户交换签字的和加密的邮件,只要他也支持S/MIME。

Outlook 98使用一个安全存储器来存储用户的个人关键信息。用户的一个证书包括他/她的公共密钥或其他所需的信息,例如e-mail地址。用用户的公共密钥加密的邮件,只要用相关的用户私人密钥就可以解密,反过来也行。因此,当发送加密邮件时,您要用接收用户的证书(即公共密钥)来进行加密;同样,当读加密邮件时,您使用自己的私人密钥来解密。

注意 对使用公司或工作组结构的用户来说,Microsoft Exchange Key Management Server (KMS) 5.5 只为Microsoft Exchange Server 安全保护提供密钥。 Microsoft Exchange Key Management Server 5.5, Service Pack 1 将会给公司用户提供S/MIME 密钥。

为安全保护设置注册表

为Outlook 98安全保护选项设置以下注册表键:

HKCU\Software\Microsoft\Office\8.0\Outlook\Security\Options
每次,用户在试图阅读一个带有无效签字的信息时,将会弹出一个警告对话框,告诉用户有关签字的信息并列出导致错误的原因列表。您可以选择不显示这个对话框。只有注册表键的最后一位被用上,它的缺省设置值为0。
HKCU\Software\Microsoft\Office\8.0\Outlook\Security\MinEncKey
这个注册表键(type=DWORD) 为加密邮件设置了最短的密钥长度。您可以根据想要的安全级,为您的用户设置一个最短的密钥长度。假如没有达到这个最短长度,Outlook 将会显示一个警告信息。标准密钥长度为40,64,128和168。国际用户不能阅读使用大于40位的密钥加密的邮件。
HKCU\Software\Microsoft\Office\8.0\Outlook\Security\RequiredCA
这个注册表键(type=STRING) 限制用户只能从一个特定的证书管理机构获得证书 (例如,只能从the Microsoft Exchange KMS获得)。指定证书管理机构名作为注册表键值。
注意 要取消S/MIME,只要将注册表键设为Microsoft Exchange KMS名。然后,在KMS上,使用Issue V1 certificates only 选项来取消颁发S/MIME (V3)证书的能力。
从Outlook 97 和 MS Exchange Client 进行安全保护升级

用户第一次试图发送或者阅读加密e-mail时,Outlook就会触发安全保护升级特性。要想升级到Outlook 98安全保护,旧的.epf文件必须在用户的计算机里存在,而且用户必须知道密码。

在升级过程中,用户为他或她的安全保护密钥选择一个密钥集合名,该集合包括一个签字密钥和一个加密密钥。用户可以接受缺省名,或者选择一个独特的名字(例如,"my security keys")。另外,用户必须从下列安全保密级别中选择一个保密级别,这个级别将和用户的密钥关联:

High. 每次密钥被访问,用户必须键入密码。

Medium. 弹出一对话框,通知用户他或她的密钥正在被访问;无须键入密码。

Low. 既不会弹出对话框,也不需要密码。
Outlook的升级特性试图在安全保护存储器中保存安全保护信息。假如找不到.epf文件或者是用户记不住密码,升级特性就会被取消。然后,用户必须向管理员申请一个新的安全保护令牌,以恢复他或她的安全保护密钥(也就是,再次注册)。用户必须首先进行升级过程,然后才能使用安全保护,从而具有收发安全e-mail的能力。

利用Microsoft Exchange Key Management Server进行安全保护注册或获得证书

与系统管理员联系,申请一个安全保护令牌。有了这个令牌,才能请求安全保护注册。获得令牌后,继续第二步。

在Tools 菜单下,单击Options。

单击Security 标记。

单击Get a Digital ID,然后 选中 Enroll in Exchange Server Security。

键入您的令牌,然后单击 OK。 一个消息就会被发送到Microsoft Exchange KMS。收到回答以后, Outlook 试图在安全保护存储器中存储您的安全保护密钥。

为您的密钥选择一个安全保护级别(High, Medium 或 Low),然后单击OK。缺省的安全保护级别是 Medium。如要改变安全保护级别,单击Set Security Level。显示如下级别:
High. 每次密钥被访问,用户必须键入密码。
Medium. 弹出一对话框,通知用户他或她的密钥正在被访问;无须键入密码。
Low. 既不会弹出对话框,也不需要密码。

假如,您不想每次在发送签字邮件或阅读加密邮件时,都要接到一个提示,您应该选择低安全保护级别。微软推荐把您的密钥设为高安全保护级别。任何时候,您都可以改变与Exchange安全保护相关的安全保护级别,只要单击Tools 菜单,选中Options,再单击Security。

单击OK 保存修改。
如要把证书添加到Root Store(),单击Yes,对话框提供了关于证书所需要的信息。假如单击No, 则在您试图发送和阅读安全保护消息时,会遇到问题。
使用外部的Certificate Authorities(证书管理系统)注册安全保护或者获得证书

在Tools 菜单下,单击Options。

单击Security 标记。

单击Get a Digital ID, 然后选中Get an S/MIME certificate from an External Authority。 弹出一个Microsoft Web页,它提供了获得证书所需的信息。这个页列出了各种Certificate Authorities。要取得一个证书,只要选择连接,让它连接到您想要的Certificate Authority。
注意 要发送S/MIME消息到同一个公司服务器上的用户,您应该使用由Microsoft Exchange KMS 颁发的S/MIME 证书。

当Web 浏览器 (Internet Explorer)正在把您的证书和密钥保存到您的计算机上时,您可能会接到一个提示,让您选择一个与您的密钥相关联的安全保护级别。缺省安全保护级别是Medium。 在存储这个密钥的时候,要改变级别的话,只要单击 Set Security Level即可。各个级别如下:
High. 每次密钥被访问,用户必须键入密码。
Medium. 弹出一对话框,通知用户他或她的密钥正在被访问;无须键入密码。
Low. 既不会弹出对话框,也不需要密码。

假如,您不想每次在发送签字邮件或阅读加密邮件时,都要接到一个提示,您应该选择低安全保护级别。
在存储证书时,您会被提示,要求保存root certificate。如要把证书添加到Root Store(),单击Yes,对话框提供了关于证书所需要的信息。假如单击No, 则在您试图发送和阅读安全保护消息时,会遇到问题。
证书和密钥被安装以后,Outlook就可以访问和使用它们。

构造安全保护设置

下面的步骤描述了用户如何构造Outlook安全保护设置。

观察和修改安全保护设置
假如用户在Microsoft Exchange Server上注册安全保护,Outlook为用户创建了安全保护设置。

观察和修改安全保护设置

在Tools 菜单下, 单击 Options。

单击 Security 标记。

在缺省安全保护设置下,选中您想要观察或修改的设置。

单击 Change Settings 来观察或修改一个特定的设置。

单击 OK。

创建Outlook安全保护设置
假如用户使用外部Certificate Authority获得了一个证书,Outlook为单个证书创建一个安全保护设置。对于多个证书,用户可能需要创建他们自己的设置。

创建一个Outlook 安全保护设置

在Tools 菜单下, 单击 Options。

单击 Security 标记。

单击 Change Settings。

单击Create New。
单击Choose 选择一个签字证书。缺省的加密证书和缺省的签字与加密算法将会被显示出来。您要改变加密证书的话,只要选择另外一个证书即可。您还可从下拉式列表框里选择不同的值,来改变缺省的算法。
您可能需要通过使用所提供的检查框,把这个设置作为所有安全保护邮件的缺省设置,或者把它作为这个特定消息格式(S/MIME 或 Microsoft Exchange Server 安全保护)的缺省设置。您也可能想要为S/MIME安全保护设置,用安全保护邮件发送证书。

单击OK。
在计算机之间移动证书和密钥
拥有不止一台计算机的用户,可以利用Outlook Digital IDs Import/Export的特性,复制他们的安全保护信息。

在计算机之间移动证书和密钥

在Tools 菜单下,单击 Options。

单击Security 标记。

在 Digital IDs 区,单击Import/Export。

在具有您的证书和密钥的计算机上,单击 Export。

在另外一台您想要引入安全保护信息的计算机上,重复步骤1到3,然后单击Import。
Outlook 将 Microsoft Exchange Server 安全保护设置输出到一个.epf文件; Outlook 从外部证书管理机构输出 S/MIME 证书和密钥,并写到一个 .pfx 文件里。用户必须提供一个密码来保护这个信息文件。

用户必须提供一个友好的名字,这个名字也将作为他们正在输入的证书和密钥的"keyset name(密钥集合名)"。

续借密钥和证书
每个证书和私人密钥都有一定的时间期限,隔一段时间就会过期。当Microsoft Exchange KMS提供的密钥达到了时间的最后期限,Outlook会警告这些用户,并提醒他们续借密钥。Outlook代表用户给服务器发送续借信息。

一些问题的解决
下面的表描述了有可能发生的与安全保护有关的问题,并介绍了一些解决问题的技巧。

问题与解决技巧

在试图阅读签字邮件时,用户接到了一个无效签字的错误消息。 有好多原因都可能导致这个问题,这些原因在无效签名对话框里被列出来了。最常见的原因是发送者的证书没有被信任。 Outlook 98 安全保护使用基于信任的证书。假如用户的安全保护不信任发送者的证书,或者不信任发送者证书的颁发机构,签字就会被认为是无效的。为了改正这个问题,可以通过为证书修订信用,只要在无效签字对话框里单击Edit Trust 即可。证书的信用状态就会被显示。然后,单击 Explicitly trust this certificate 来把这个特定的证书确认为可信任的。并且,您可以从显示的阶级组织结构中,选择Certifying Authority的证书,并改变它的信任状态,以使得这个证书是可信任的。

用户不能在预览窗格中看见安全保护消息,这个特征目前还没有被支持。Outlook将来的版本可能会支持显示签字消息。

在发送签字消息时,用户接到一个错误消息,或者是用户的e-mail地址与证书上的地址不匹配,或者是用户的证书有问题。 用户可以从为当前的e-mail消息所选的安全保护设置中观察这个证书。假如用户具有不止一个e-mail帐号时,有可能正在使用的帐号具有一个与证书上不同的e-mail地址。其它能够导致这个问题的可能原因是,这个证书没有被认可、过期,或是被取消了。