使用ExchangeServer2003构建企业消息平台二〇〇六年二月本手册的读者这不是一本关于ExchangeServer2003的大全,本手册是针对企业信息管理员编写的。无论你是否具备邮件系统的基础,阅读本手册可以帮助你为你的企业构建一个基于MicrosoftExchangeServer的消息平台。本手册包含以下内容:消息平台初步ExchangeServer2003安装与配置配置邮件系统客户端在Internet上发布消息平台如果读者想要成为Exchange方面的专家,请参阅其它书籍或微软公司相关站点:第一部分消息平台初步在现在的商业环境中,企业要想获得成功,必须拥有强大的信息创建、存储和共享基础结构,同时还应拥有可快速和智能地响应这些信息的工具。随着企业规模的日益扩大,在员工之间传递和共享信息变得愈发困难,这主要体现在:工作繁忙,员工之间难以及时沟通文件管理各自为政,难以及时调阅和统一电信费用居高不下,效率却很低员工使用免费电子邮件或在ISP处租用的电子邮件系统,影响公司形象,又担心在ISP处的邮箱被竞争对手偷窥构建基于Internet/Intranet的消息系统,可以降低信息系统的总体拥有成本,加快沟通速度,提高信息系统的安全性。在现代企业中,除了面对面的交谈与电话外,还可以通过下列手段在员工间通讯:移动电话短信息电子邮件即时消息网络会议文件共享本手册(V1.0)主要介绍如何使用MicrosoftExchangeServer构建电子邮件系统和公共文件夹,以及如何对其进行管理与优化。1.1电子邮件(Email)电子邮件是目前采用最广泛的通讯方式之一。是Internet应用最广的服务:通过网络的电子邮件系统,用户可以用非常低廉的价格、非常快速的方式,与世界上任何一个角落的网络用户联络系,这些电子邮件可以是文字、图象、声音等各种方式。正是由于电子邮件的使用简易、投递迅速、收费低廉,易于保存、全球畅通无阻,使得电子邮件被广泛地应用,它使人们的交流方式得到了极大的改变。每一个电子邮件的用户都拥有一个电子邮件地址。电子邮件的典型地址是:username@hostname在这里username是用户名,hostname是该用户帐户所在的邮件系统的主机名称,username是该用户在该邮件系统上的帐户。在一个邮件系统上,用户名不允许重复。1.2电子邮件系统的结构电子邮件系统基于存储/转发的机制,整个系统可以分为不同的功能模块,以达到易于实现、灵活性、可扩展性等目标。邮件系统的基本结构主要包括:邮件用户代理(客户端)邮件传输代理邮件分发代理邮件存储代理1.2.1邮件用户代理邮件用户代理(MUA——MailUserAgent)是用户和邮件系统的接口部分,用户使用它来创作、阅读、管理自己的邮件。MUA可以使用不同的方法来实现,例如OutLook、Foxmail是运行于Windows系统的MUA,Pine、Kmail是运行在Unix上的MUA,而Hotmail、Yahoo提供的免费邮件则提供Web方式的MUA,甚至一些邮件短消息、通知之类,也可以看作是MUA的辅助功能。一个完整的邮件系统必须提供邮件用户代理MUA支持。最常见的做法是支持标准的客户端软件,这样邮件系统的开发者就不需要关心用户端软件的开发和管理。为了支持标准的用户端软件,邮件系统需要支持POP3或IMAP4协议。MicrosoftExchangeServer提供全功能的客户端访问,它不仅支持通用的客户端软件如OutlookExpress、Foxmail,而且提供了功能完备的的Web访问方式。1.2.2邮件传输代理当MUA将邮件交给邮件系统,邮件系统就需要将它们发送给正确的接受主机,这个任务是由邮件传输代理MTA来完成的。邮件系统的设计与具体的网络结构无关,不管是互联网还是UUCP网络,原则上只要具备理解相应网络协议的MTA,邮件系统就可以通过MTA,将邮件从一个主机发送到另一个主机。虽然邮件系统理论上的设计与网络类型无关,但具体的邮件传输代理要根据具体的网络类型来实现,而对于互联网来讲,它使用的是SMTP协议及其增强版本ESMTP。邮件传输代理是邮件系统的核心,通常采用存储转发机制。MTA设计的基本原则就是尽可能将邮件发送到目的地址,而不丢失任何一封邮件。1.2.3邮件分发代理邮件分发代理MDA用于将邮件保存到用户的邮箱中,是直接和用户邮箱打交道的部分之一。在邮件分发中,有时需要系统能完成一些自动操作。例如,当用户有一段时间出门度假,程序就可自动帮助用户回复邮件,把自己的情况告诉发送方。现在,还有一些更为复杂的MDA实现,能够实现一定的智能化操作。它们可以根据邮件信封上的地址和信件中的具体内容,实现对邮件的自动处理,如柜收、自动回复、自动转发等等。但是,这些复杂的MDA都存在一个问题,就是配置比较复杂,至少需要一定的编程基础,才能完成对它们的配置,而这样不适合普通用户,因此就需要开发功能更简单一些的MDA,使配置更为直接、易于理解。另一种解决方案是,针对procmail或者maildrop这些复杂的MDA,编写易于理解的管理界面,通过增加一些限制或减少一些功能,适应普通用户的应用。1.2.4邮件存储代理c邮件用户代理(MUA)发送主机(MTA)Internet接收主机(MTA)接收用户信箱(MDA)邮件用户代理(MUA)图1邮件系统结构1.3邮件传输与相关协议与,FTP等应用一样,电子邮件的实现需要应用协议的支持。目前,在Internet/Intranet上广泛使用的协议有:SMTPPOP3IMAP41.3.1SMTP协议简单邮件传输(SMTP)是事实上的在Internet传输email的标准。SMTP协议被用来在MUA和MTA、MTA与MTA之间传输邮件。SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本就被传输了。Sendmail是最早实现SMTP的邮件传输代理之一。到2001年至少有50个程序将SMTP实现为一个客户端(消息的发送者)或一个服务器(消息的接收者)。一些其他的流行的SMTP服务器程序包括了PhilipHazel的exim,IBM的Postfix,D.J.Bernstein的Qmail,以及MicrosoftExchangeServer。由于这个协议开始是基于纯ASCII文本的,它在二进制文件上处理得并不好。诸如MIME的标准被开发来编码二进制文件以使其通过SMTP来传输。今天,大多数SMTP服务器都支持8位MIME扩展,它使二进制文件的传输变得几乎和纯文本一样简单。需要注意的是,由于二进制文件需要被编码成为纯文本,所以在使用SMTP协议传输附件时,MIME编码将使附件的体积增加。以下是一个用户发送电子邮件的过程:邮件用户代理(MUA)发送主机(MTA)Internet接收主机(MTA)邮件用户代理(MUA)DNS服务器用户信箱(MDA)图2电子邮件发送过程第一步用户配置电子邮件客户端要发送电子邮件,用户必须安装一个用户代理软件(Web访问方式除外),如MicrosoftOutlookExpress,在安装和配置这些软件时,用户需要输入SMTP服务器的地址。这个地址可以是一个IP地址,自然也可以是一个主机名(NETBIOS名亦可)。图3配置OutlookExpress的SMTP服务器配置SMTP服务器地址的目的是告知客户端软件通过哪个服务器发送电子邮件,就像发送一封普通信件时必须知道在哪个邮政信箱投递信件。需要注意的是,随着垃圾邮件的出现,越来越多的SMTP服务器要求身份验证才能发送电子邮件,这样可以在一定程度上减少垃圾邮件的投递。第二步用户撰写并发送邮件用户输入电子邮件地址、主题、抄送、邮件内容等信息,如果有必要的话,还可以增加一个或多个附件。默认情况下,当用户单击“发送”按钮后,邮件被立即发送。第三步邮件发送用户代理发送邮件是通过SMTP协议实现的,如果在配置客户端时输入的SMTP服务器地址是IP地址,则用户代理软件将直接连接SMTP服务器,如果输入的是主机名、域名或NetBIOS名称,用户代理将首先解析SMTP服务器的名称,然后建立到SMTP服务器的连接。SMTP服务器使用端口25提供服务,因此要确保在客户端与SMTP服务器之间的防火墙(如果有)允许到SMTP服务器25端口的访问。在发送方(客户端)和接收方(服务器)间建立连接之后,接下来是一个SMTP会话。在下面的对话中,为区分客户端和服务端,所有客户端发送的都以“C:”作为前缀,所有服务器发送的都以“S:”作为前缀。在多数计算机系统上,可以在发送的机器上使用telnet命令来建立连接,比如:telnetsmtp.sosostudio.com25它打开一个从发送的机器到主机smtp.sosostudio.com的SMTP连接。S:220smtp.sosostudio.comESMTPPostfixC:HELOS:250HelloC:MAILFROM:hexh@sosostudio.comS:250OkC:DATAS:354EnddatawithCRLF.CRLFC:Subject:祝新年愉快C:From:hexh@sosostudio.comC:To:moon@public.wh.hb.cnC:C:祝新年愉快C:C:.C:.S:250Ok:queuedas12345C:quitS:221Bye这样,就完成了从客户端到SMTP服务器的邮件传送,但是此时邮件被存储在SMTP服务器上,因此收件人并未收到邮件。接下来,SMTP服务器将试图完成邮件的传递。第四步邮件传递SMTP服务器收到邮件后,首先检查接收到的邮件是否符合传递的规则,如邮件体积、收件人数量、甚至收件人地址、发件人地址。一些SMTP服务器还可以检查有附件的邮件是否包含病毒,从而拒绝包含病毒的邮件的传递。SMTP服务器要投递邮件,需要向DNS服务器查询邮件的接收服务器(邮件分发代理)的IP地址。例如上面这封发送给moon@public.wh.hb.cn的邮件,SMTP服务器需要知道这封后缀为public.wh.hb.cn的邮件需要投递给哪一台服务器。SMTP服务器向DNS服务器查询类型为MX的DNS记录,MX的全称是MaileXchange,即邮件交换记录。当SMTP服务器查询到该域的邮件交换记录的IP地址后,将与该地址所在的主机建立一个SMTP会话,将邮件传递给这台主机。接收到邮件的主机根据实际情况,将邮件传递给邮件存储代理或再次将它投递出去。需要特别指出的是,在DNS中,一个域可能存在多条MX记录,也就是说可以有多台服务器接收到达同一个域的的电子邮件,对于大型的邮件系统,这样做尤为重要。因为这种方式可以平衡各服务器的负载。第五步邮件存储接收到的邮件最终将到达邮件存储服务器,这些服务器也可能拒绝一些邮件的存储,如邮件体积过大、包含病毒等情况。不同的邮件系统对邮件存储的方式不同,邮件可以被保存在专用的数据库中,甚至是一个关系型的数据库,一些邮件系统直接将邮件保存为一个磁盘文件。这些邮件被存储在服务器上,等待用户接收。第六步邮件接收邮件到达邮件存储代理后,就开始等待用户接收。一些邮件存储系统可以用手机短信的方式通知用户来接收电子邮件。与发送电子邮件一样,要接收电子邮件,客户端需要配置一些基本的参数,使用专门的通信协议与服务器通信。在这里,POP3是服务器使用的通信协议类型,接受邮件(POP3)是该服务器的域名。一些SMTP服务器可以不要求客户端的身份验证,而接收邮件时则一定要使用正确的用户名和密码。有一个例外,当我们使用MicrosoftExchangeServer时,如果客户端使用MicrosoftOutlook软件,由于该软件可以集成Windows的安全,当客户登录到一个域后,收取该域的邮件可以不重复要求身份验证。目前