在RHEL5上搭建邮件服务器的调研报告电子邮件系统基础电子邮件系统是目前Internet上通用的标准,由于具有完善的设计架构,因此可兼容来自不同平台、服务器或应用程序间的信息交换。因此在讨论邮件服务器的架设与管理前,我们必须对其基本概念有充分的了解。专有名词本节将从与电子邮件系统有关的名词开始介绍,之后再讨论整个电子邮件传递的流程,希望能帮助读者建立清楚和正确的概念。电子邮件电子邮件(ElectronicMail,E-mail)是通过网络连接来相互传递的信息,也是目前Internet中最常用的服务之一,它的主要优点有:快速:电子邮件寄出后,收件人能在短时间内得到这份邮件。经济:它不需要使用信封和信纸,也不需邮资。多样性:除了文本之外,电子邮件还可传送图片、声音、影像和其他类型的数据。基本上E-mail包含两个部分:邮件信封与邮件内容。邮件信封是指保留给邮件服务器的信息,它并不提供用户浏览之用,其中包括Received、MessageID、From、Subject、Date等。而邮件内容又包含报头与邮件体两个部分,如果有附件也会出现于此。邮件传输代理邮件传输代理(MailTransferAgent,MTA)是一种在服务器端执行的软件,也就是邮件服务器,它可在服务器间传送电子邮件。一般而言,每个系统只有一个MTA保持在运行状态,而在UNIX系统中使用最为广泛的MTA程序有Sendmail、Postfix、Qmail与Fetchmail等,本章将以Sendmail的内容介绍为主。邮件用户代理邮件用户代理(MailUserAgent,MUA)是一种客户端软件,它可提供用户读信、回信、写信及处理邮件等功能,但和MTA不同的是,一个系统中可以同时存在多个MUA程序。一般常见的MUA程序包括Linux平台上的mail、mailx、elm和mh等,以及Windows操作系统中的OutlookExpress或NetscapeMessenger。邮件传递代理邮件传递代理(MailDeliveryAgent,MDA)通常与MTA一同运行,将MTA接收的邮件,按照目的位置做出判断,以决定将该邮件放在本机账户下的邮箱,或是再经过MTA将此邮件转发到下个MTA,而MDA一般都在后台执行。如果此封邮件的目的地为本机用户邮箱,则MDA除了将邮件放在正确的邮箱外,同时还具有邮件过滤的功能,例如丢弃某些特定主题的广告或色情邮件,或者自动回复发件人等。邮件传递系统由MTA和MUA组合而成的系统称为邮件传递系统(MailTransferSystem,MTS),如图所示。例如目前Internet就是一个大型的MTS。邮局协议邮局协议(PostOfficeProtocol,POP)是MTS上负责“接收”电子邮件的通信协议,也就是说,POP不具有传送邮件到用户或其他邮件主机的功能。在提供此项服务的主机中,当邮件发送时会先保存在服务器上,然后在POP客户端连接到服务器时,POP服务器会将用户邮箱中的邮件下载到客户端计算机,并由服务器上删除这些信件。所以用户可以在不连接服务器的情形下进行脱机阅读,因此特别适用于拨号连接的用户,这也是POP主要的优点。但如果用户邮箱中存在大量的邮件,在下载时可能会引起网络流量的增加,特别是在带宽不足的情形下更为严重,所以在使用POP服务器前,需先考虑目前企业的现况以及用户的需求。因为POP是采用“拉”邮件的方式,所以当使用支持POP的MUA读取电子邮件时,就可执行用户命令或是固定时间间隔的方式,将MTA上的新邮件“拉”到客户端的计算机上并加以保存。这种脱机读信的工作,很显然都是由MUA主动完成而非MTA,所以客户端拥有主动权,可以弹性决定取信的时间。两种POP最普遍的版本是:POP2以及POP3,但两者之间彼此不兼容,POP2在连接端口109执行,而POP3则在连接端口110执行。在FedoraCore5中同时支持二者,目前POP3的使用率较高,可由/etc/services文件中查看以下的内容:pop2109/tcppop-2postoffice#POPversion2pop2109/udppop-2pop3110/tcppop-3#POPversion3pop3110/udppop-3Internet信息访问协议Internet信息访问协议(InternetMessageAccessProtocol,IMAP)是Internet上一项常见的通信协议,它符合RFC的标准,其中包含连接方式、客户端验证以及Client/Server的会话等定义,因此可支持所有兼容RFC2060的IMAP客户端。与POP一样,IMAP主要用来读取服务器上的电子邮件(并非是传递),但客户端需先登录服务器,然后才可进行资源的访问。用户在登录后可根据授予的权限来读取或修改信件内容,并不是将服务器中的邮件直接下载到客户端计算机(与POP最大的不同),这样可避免重要数据在下载过程中遗失。由于IMAP没有将邮件实际下载到客户端,因此用户必须确定和服务器间存在网络连接才可读取信件内容,所以通常在局域网中才使用IMAP来进行信件的接收。IMAP是一个逐渐崭露头角的邮件通信协议,因为它比POP更具弹性,两者在访问邮件方式上的差别如图所示。但目前仍然有较多人使用POP作为电子邮件接收的通信协议。IMAP支持的操作模式有:图6-2POP与IMAP访问邮件的方式脱机模式(Offline)MUA会先将电子邮件从服务器下载到客户端计算机,之后删除主机上的信件。在线模式(Online)MUA在远程执行服务器上的邮件处理,例如删除和修改,并把这些邮件保留在服务器上。只要一接收新邮件,客户端可以立即得到最新的E-mail邮箱情况。中断连接模式(Disconnected)MUA先连接到服务器选择所要处理的邮件,然后复制一份缓存到计算机中,接着就中断连接。稍后如果再次恢复连接时,客户端可将缓存邮件与服务器执行同步化。目前在FedoraCore5中支持IMAP第二版的IMAP2与IMAP3(当前最新版为IMAP4),可由/etc/services文件中查看以下的内容:imap143/tcpimap2#InterimMailAccessProtov2imap143/udpimap2imap3220/tcp#InteractiveMailAccessimap3220/udp#Protocolv3imaps993/tcp#IMAPoverSSLimaps993/udp#IMAPoverSSL搭建邮件服务器第一步:安装Sendmail服务器在FedoraCore5安装时,默认会自动安装Sendmail服务器,其内置的Sendmail服务器版本为sendmail-8.13.5-3,如果不知道是否已安装此版本的软件,可以使用以下方法来判断:[root@ns1~]#rpm-qasendmailsendmail-8.13.5-3如果需自行安装Sendmail服务器,利用“软件包管理者”程序进行安装,如图。在安装Sendmail服务器后,最简单的启动方法如下:[root@ns1~]#/etc/rc.d/init.d/sendmailrestart正在关闭sendmail:确定]正在关闭sendmail:确定]正在启动sendmail:确定]正在启动sm-client:确定]可以利用以下的方法重新启动Sendmail服务器:[root@ns1~]#/etc/rc.d/init.d/sendmailrestart正在关闭sendmail:确定]正在关闭sendmail:确定]正在启动sendmail:确定]正在启动sm-client:确定]可以利用以下的方法停止Sendmail服务器:[root@ns1~]#/etc/rc.d/init.d/sendmailstop正在关闭sendmail:确定]正在关闭sm-client:确定]可以利用以下的方法查看Sendmail服务器目前执行的状态:[root@ns1~]#/etc/rc.d/init.d/sendmailstatussendmail(pid30113002)正在执行...因为E-mail服务是系统中相当重要的工作,所以在一般情形下,应该在引导时自动启动Sendmail,以节省每次手动启动的时间。要在引导时自动启动Sendmail服务器,可以使用以下方法:[root@ns1~]#chkconfig--level5sendmailon[]#chkconfig--list|grepsendmailsendmail0:关闭1:关闭2:打开3:打开4:打开5:打开6:以上表示如果系统执行RunLevel2、3、4、5时,就会自动启动Sendmail服务器(sendmail),也可配合“--list”参数的使用,显示每个RunLevel是否自动执行Sendmail服务器。第二步:配置Dovecot服务器用命令system-config-packages安装dovecot软件包,vi/etc/dovecot.conf将#protocols=imapimapspop3pop3s前面的#去掉,RHEL4中加上pop3,pop3s启动dovecot服务servicedovecotstart第三步:启动DNS,saslauthd,sendmail.dovecot服务进行测试姓名:赵天骏班级:0808030504学号:2008080305402完成日期:2011.6.4