| smtp服务概述 鉴于本课程的默认读者群是那些对internet的使用已经比较熟悉的老用户,所以我们在此并不打算花很多时间介绍e_mail的使用常识,如果读者对于收发e_mail的操作碰巧还存在不明确的地方,请参阅其他关于internet基本操作的课程。本节我们着重讨论e_mail通信的原理及其在较低网络层次上的实现机制,我们将试图在读者头脑中建立有关e_mail在internet中传送原理的最基本认识。 我们知道e_mail用户的唯一性标识是邮件地址,形如uesrname@domain.com,即名为uesrname的用户使用域名为domain.com的邮件服务器进行邮件的发送和接收。用户通常使用客户端邮件软件(例如foxmail、outlook express等)联系服务器进行邮件收发。客户将邮件提交给邮件服务器之后,还需要由服务器进行一系列复杂的传递操作,这才能将邮件传送到目的地址所在的邮件服务器主机。这一传的过程的实现就依赖于smtp服务,smtp定义了一套有效的邮件传递规则,它以协议的方式规定了网络中全部邮件服务器共同遵守的准则。 这里我们要指出,我们所熟悉的电子邮件服务除了依赖于smtp协议之外,还需要pop协议的支持,而pop协议是iis所不能支持的,所以使用iis服务器并不能实现完整的邮件服务,这需要大家明确。笼统的说,smtp负责邮件的传递,例如从客户机到邮件服务器,以及服务器之间的传递工作。而pop协议能够让客户检索到由smtp发送来的邮件,并将新的邮件下载的用户本地。 |
| 右图显示了smtp和pop协议在电子邮件传递过程中的作用。smtp以文件夹的方式存储邮件,用户只要将需要发送的邮件投入smtp服务器上指的文件夹中即可实现邮件的发送,但是,用户不得不自行检索相应的文件夹得到自己的新邮件(实践中并不用这种方法)。 现在我们来看pop,pop的含义是邮局协议(post office protocol),一般的,人们习惯于使用pop协议的版本号称呼pop服务器,目前在internet上的大多数pop服务器为pop3服务器。如右图,smtp服务器将邮件发送给pop3服务器。用户使用客户端邮件软件联系pop3服器,使用账号和密码进行身份验证之后,用户将待发邮件从本地发送到服务器,pop3服务器将用户邮件发送到用户本地。这一过程中,pop3服务器本身也是一台smtp服务器,但它能够 |
![]() |
| 为每一用户指定一个单独的文件夹,这是纯粹的smtp服务器所不能做到的。 上述内容并非大多数电子邮件服务提供商所实际使用的方式,作为补充,我们再次简要介绍一下公用邮件服务提供商通常(例如freemail.263.net、hotmail.com)使用的工作方式。它们通常同时使用两个邮件服务器地址,如freemail.263.net:它的pop3服务器为263.net ,smtp服务器为smtp.263.net。用户通过客户端邮件软件(需要配置smtp及pop3服务器地址)连接到263免费邮件服务器之后,先要通过账号身份验证,然后进行邮件收发。这里涉及两个过程:smtp和pop3。用户使用smtp,通过tcp端口25发送邮件;而pop3检索用户的新邮件并使用tcp端口110将新邮件发送到用户本地。由此可见,完善的邮件服务需要smtp和pop3的共同作用。但是鉴于iis并不支持pop3,所以我们将不介绍很多pop3的内容。说到这里,读者应该清楚的了解iis在邮件服务方面的限制,不过在某些场合,smtp还是有它存在的价值。 |
| smtp工作原理 前文已经提到,iis所支持的smtp服务存在许多功能或性能的限制,这是由smtp服务本身的限制所决定的。事实上,即使是iis所支持的smtp服务也只是microsoft的其他邮件产品,如exchange、site server,所提供的smtp服务的简版。与其说存在技术上的瓶颈,还不如说是microsoft的一种产品策略,毕竟iis是随windows 2000免费附送的,而exchange、site server或其他公司等邮件(群件)产品(如notes等)都是价值不菲的软件。同时,对于小型商业企业、政府、教育机构来说,iis的smtp所实现的功能已经足够了。同时,在某些只需发送邮件的场合(宣传、营销等),使用smtp还有意想不到的作用。为了弥补smtp服务不能主动接收邮件的缺陷,某些系统管理员还通过自己写一些asp代码实现邮件检索功 |
![]() |
| 能(通过cdo for nts库),从而可以读取smtp文件夹中的简单邮件等。 smtp通过文件夹方式实现邮件的传送,一封邮件在存送的各个不同过程(状态)下被smtp放入不同文件夹中。例如,用户只需将待发送的邮件投入发送文件夹就可以由iis实现自动发送,而用户收到的新邮件也是被iis投放到收件文件夹中。 由iis自动生成的默认smtp站点具有如右图所示的缺省文件夹,它们位于inetpub目录下的mailroot文件夹中,主要的功能文件夹有: ● pickup:拾取待发送邮件,用户将待发邮件投入此文件夹。 ● queue:保存传送过程中的邮件,因网络繁忙、目标服务器无响应等原因不能一次发送成功的邮件暂存在此等待继续发送。 |
| ● drop:接收所有传入邮件。 ● badmail:存放不能投递且不能返回发送者的邮件(称为死信)。 ● route、sorttemp、mailbox:iis使用这些目录对发往其他服务器的邮件进行排序和重组,从而使投递过程有序、快捷。 注意:上述文件夹中,除了badmail和drop可以移到其他分区外,其余文件夹必须保存在ntfs分区上。 smtp服务的工作原理如右图所示,一旦用户将待发邮件投放到pickup文件夹中,iis即时将信邮件拾获并加入queue文件夹,然后由iis判断邮件的目标地址,根据收件人位于本地或远程判断下一步工作: ● 本地邮件传送:如果邮件是送交本地收件人的,iis将其从queue文 |
![]() |
| 件夹直接移动到drop 文件夹中,一旦邮件存放到drop目录,smtp的邮件传送循环就算完成了。 ● 远程邮件传送:对于收件人账号位于远程邮件服务器商的邮件,smtp服务将进行如下操作: 1.smtp服务将邮件进行编组,以便在发送时能够一次将多个邮件同时发送出去,以优化网络资源消耗。 2.iis负责检验远程邮件服务器是否做好接收邮件的准备,一旦准备妥当即可进入下一步。否则,邮件将重新进入待发邮件队列(queue文件夹),随后,iis将每隔一定时间从新尝试联系目标服务器,尝试次数与收件间隔可在smtp服务属性中设置(详见下文)。 |
2.iis负责检验远程邮件服务器是否做好接收邮件的准备,一旦准备妥当即可进入下一步。否则,邮件将重新进入待发邮件队列(queue文件夹),随后,iis将每隔一定时间从新尝试联系目标服务器,尝试次数与收件间隔可在smtp服务属性中设置(详见下文)。
3.iis将邮件实际发送到internet(intranet)中,等到目标邮件服务器返回一个成功收到邮件的信息之后,邮件的发送工作就算圆满完成了。此步骤中可选的高级功能包括ssl加密、使用智能主机转发、指定特殊路由等将待稍后详述。
4.一旦目标邮件服务器不能接受邮件(主要因为目的地址不存在或邮件据收),iis将尝试将邮件返回给发送用户,如果返回操作不成功,该邮件将作为死信投递到badmail文件夹中。
上述过程就是iis中smtp服务的工作原理,除了iis服务器之外,客户机还需安装客户端邮件程序。
| 配置smtp服务器 在上文阐述的smtp服务工作原理基础上,我们在本节中将讨论配置smtp服务器的具体方法和技巧。smtp服务器的创建、管理和配置工作是在iis中完成的,其中smtp服务器属性表单和域属性表单是对smtp进行配置的主要界面。 创建smtp虚拟服务器 smtp服务也有虚拟服务器的概念,通过创建smtp虚拟服务器可以在同一台计算机上实现多个smtp邮件服务器。当然,不同虚拟服务器的缺省目录(邮件文件夹)是不同的。 在网络中唯一区分smtp服务器的标识有ip地址和tcp端口号,smtp服务的缺省tcp端口号为25。通常在iis安装完成之后(安装过 |
![]() |
| 程中已选择smtp服务),系统自动生成一个默认smtp站点,它与默认web服务器和默认ftp服务器共用系统缺省的ip地址。 以下我们将新建一个smtp虚拟服务器站点: 1.在iis管理控制树中右击计算机节点,如右上图所示,在弹出菜单中指向【新建】单击【smtp虚拟服务器】。 2.在【smtp虚拟服务器创建向导】对话框中指定新站点的标识,在【smtp虚拟服务器描述】栏中添入的名称实际用于在iis内部区分站点,注意,这一名称并非smtp服务器的域名。单击【下一步】。 |
![]() |
![]() |
![]() |
| 3.如左上图所示,在【选则ip地址】对话框中指定smtp虚拟服务器使用的ip地址。单击【下一步】。 4.右上如图所示,在【选择主目录】对话框中,单击【浏览】指定服务器主目录,上文提到的smtp服务文件夹都包含在服务器主目录下。注意,smtp主目录必须位于ntfs分区中,否则向导将不予认可,但badmail和drop文件夹可以稍后移动到其他分区中。单击【下一步】。 5.如中图所示,在【选择默认域】对话框中,指定当前smtp虚拟服务器的默认域名称,默认域将继承全部的站点属性,一个smtp虚拟服务器只能有一个默认域,该域将不能被删除,除非预先将默认域职责转移到其他域中。iis将使用这里指定的域名命名默认域。 6.单击【完成】结束smtp虚拟服务器创建工作。 |
| 创建smtp作用域 smtp虚拟服务器至少包含一个域,即本地默认域,用于标记一般性消息。本地默认域只有一个,并且不能删除。默认域的名称是这样规定的:如果iis计算机在其设置的dns服务器(从【控制面板】、【网络】、【tcp/ip属性】对话框中设置)中注册了一个dns域名,则本地默认域自动使用这一名称,即使这一名称被更改过,iis仍然能够在下一次计算机启动时自动与之同步;如果iis计算机没有设置dns域名,则本地默认域名就是服务器的计算机名。 创建smtp作用域的方法如下: 1.在iis管理控制树中右击虚拟smtp服务器节点下一级的【域】子节点,在弹出菜单中指向【新建】单击【域…】。 2.如右上图所示,在【新建smtp域向导】对话框中,制定新建域类型,别名域是本地默认域的一个副本域,它使用与本地默认域相同的系统文件夹(drop等目录);远程域是为了方便对远程站点进行管理而设置的域。单击【下一步】继续。 3.如右下图所示,在【选择域名】对话框的【名称】栏中,指定用户由此域接收/发送的电子邮件所使用的域名,即用户电子邮件地址中"@"字符后面的域名部分。单击【完成】结束配置。此时,新建的域出现在smtp虚拟服务器地域列表中。 |
![]() |
![]() |
|
| 在smtp虚拟服务器的域节点中,提供了全部域的列表,双击域图标可以打开域属性对话框,对其属性进行配置。由于别名域是本地默认域的副本(影像),故其属性不可配置。 |
| smtp虚拟服务器常规属性 smtp虚拟服务器属性表单提供了对smtp虚拟服务器属性进行详细配置的操作界面。在属性表单的【常规】选项卡中,可以对一般性的虚拟服务器参数进行指定,其执行步骤如下: 1.在iis管理控制树中右击smtp虚拟服务器节点,在弹出菜单中单击【属性】,打开smtp站点属性表单。 2.如右上图所示,在属性表单【常规】选项卡的【名称】栏中,可以修改在创建站点时指定的虚拟服务器标识,图中的默认smtp虚拟服务器是在iis安装时创建的。 3.在【ip地址】下拉列表中,指定此站点使用的ip地址(缺省以25为端口号)。一般情况下为一个虚拟服务器指定一个ip地址完全能够满足用户要求,但是有时我们也需要复杂的ip地址及tcp端口号设置,例如同时使用多个ip地址作为虚拟服务器的可用地址,或者指定同一(乃至多个)地址的多个tcp端口号,这时,就要配置高级ip地址属性。在左图中单击【高级】,打开高级地址设置对话框。 4.如右下图在【高级】对话框中的【地址】列表中,缺省列出了单一ip地址和默认的端口号25。单击【添加】,指定额外可用的ip地址和tcp端口号。同一虚拟服务器的标识在数量上是不受限制的。但是,如果这里指定的非缺省(25)端口号,客户端邮件程序则需要额外配置。完成后单击【确定】。 5.在【常规】选项卡中选择【起用日志记录】复选框,指定活动日志格式,并单击【属性】设定日志的记录时间及方式等参数。有关日志记录方面的问题,我们在www以及ftp服务的章节中已经花了不少笔墨进行介绍,故在此不再详述。 |
![]() |
![]() |
| smtp连接限制 smtp连接限制类似于www服务中的带宽截流功能,其目的都是提高站点的可用性。在smtp虚拟服务器属性表单的【常规】选项卡中单击【连接】,打开如左图所示的【连接】对话框。 smtp连接属性包括传入和传出两部分,分别限制传入和传出虚拟服务器的连接限制数和连接超时。连接限制数是指同时连接到当前smtp虚拟服务器的传入(收邮件)和传出(发邮件)连接用户数目的上限。之所以要将传入和传出连接进行分别限制,是因为对于一个邮件服务器而言,既要保证接收邮件的传送质量,还要保证邮件发送用户的响应速度。 如右图,在【连接】选项卡中的【传入】栏中选择【限制连接数为】复选 |
![]() |
| 框,使连接限制功能生效,然后指定最多同时接收的传入连接用户数,这一数值缺省为1000。对于【传出】栏中指定的邮件传出限制,可以分别设置每个域或者整个虚拟服务器的同时邮件传出数目。所谓连接超时,是指每一连接连续空闲一段时间之后自动与服务器断开连接。缺省的超时时间为10分钟(传入)和25分钟(传出)。连接对话框中还可以更改tcp端口号。 |
| 设置邮件属性 |












