Linux服务器的邮件系统原理 |
来源:email100.com 时间:2012-04-18 |
究竟什么是邮件服务器呢?邮件服务器提供了邮件系统的基本结构,包括邮件传输、邮件分发、邮件存储等功能,以确保邮件能够发送到Internet网络中的任意地方。目前先进的邮件服务器会包括:短信邮件,防毒反垃圾模块,地址簿功能,用户群组功能,代收POP3等,邮件服务器有两种不同的应用群体:ISP提供商和企事业单位。电子邮件是Internet应用服务之一。下面详细讲一下邮件系统具体的一些技术要点。
MUA(客户端程序,如Outlook)
MTA(mailtransferagent,邮件传输代理)
MDA(maildeliveryagent,邮件投递代理)
MRA(mailretrievalagent,邮件获取代理)
真实邮件发送流程模拟
假设Alex使用的信箱是alex@gmail.com,则当Alex要寄信给john@yahoo.com时,会经过下列步骤:
·首先Alex从个人计算机中写好一封信,送到他所属的gmail.com的主机中。
·gmail.com会先将信件存在自己的机器上的暂存区。
·gmail.com会检查信件目的地,并查找yahoo.com的IP地址。
·接着经由因特网将信件送到yahoo.com的主机。
·yahoo.com的主机收到信后,发现是给自己机器中的使用者,所以将信件存放到使用者的新件匣中。
·当John有空时,从家里打开计算机,并主动去yahoo.com检查是否有新的信件,当发现有新的信,则下载到自己的计算机中。
从寄信到收信的流程中,每一个网络上的组件都扮演着不同的角色
·MailUserAgent(MUA):邮件使用者代理人,这是使用者用来写信、收信的程序。例如,我们常用的OutlookExporess、Thunderbird等。它的作用在于提供使用者一个好用的收发信件接口,并将信传到自己的邮件服务器。
·MailDeliveryAgent(MDA):邮件递送代理人,负责将要给本地使用者的邮件分配到使用者的信箱中。在UNIX中,MDA通常是mail这支程序。
·MailTransferAgent(MTA):邮件转送代理人,是一个负责转送信件的服务器。UNIX中使用的Sendmail、Postfix就是MTA软件。它的作用在于收到MTU寄来的信后,根据信件地址,将信件转送到目的地。在目的地中,也有另一台MTA会负责接收信件。有时候信件并不会一次就从使用者的计算机传送到目的地的主机,而是会经由许多MTA转送到目的地的主机。这种MTA接收非自己的信件,并转送到别台MTA的动作就叫作「Relay」。
当我们在寄信时,所使用的是SMTP(SimpleMailTransferProtocol)通讯协议,在一台邮件服务器上,必须要先安装邮件服器软件,以接收SMTP协议所寄来的信件。MTA和MTA之间传送信件时也是使用SMTP协定。而收信时,使用的是POP3(PostOfficeProtocol)或是IMAP(InternetMessageAccessProtocol)协定。
什么是POP
POP的全称是PostOfficeProtocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口。现在常用的是第三版,所以简称为POP3。POP3仍采用Client/Server工作模式,Client被称为客户端,一般我们日常使用电脑都是作为客户端,而Server(服务器)则是网管人员进行管理的。举个形象的例子,Server(服务器)是许多小信箱的集合,就像我们所居住楼房的信箱结构,而客户端就好比是一个人拿着钥匙去信箱开锁取信一样的道理。
POP工作原理简介
下面就让我们一起来看看电子邮件软件收取电子邮件的过程,一般我们在电子邮件软件的账号属性上设置一个POP服务器的URL(比如pop.21cn.com),以及邮箱的账号和密码。这个在收信过程中都是用得到的。当我们按下电子邮件软件中的收取键后,电子邮件软件首先会调用DNS协议对POP服务器进行解析IP地址,当IP地址被解析出来后,邮件程序便开始使用TCP协议连接邮件服务器的110端口,因为POP服务器是比较忙的,所以在这个过程中我们相对要等比较长的时间。当邮件程序成功地连上POP服务器后,其先会使用USER命令将邮箱的账号传给POP服务器,然后再使用PASS命令将邮箱的账号传给服务器,当完成这一认证过程后,邮件程序使用STAT命令请求服务器返回邮箱的统计资料,比如邮件总数和邮件大小等,然后LIST便会列出服务器里邮件数量。然后邮件程序就会使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态。当使用QUIT时,邮件服务器便会将置为删除标志的邮件给删了。通俗地讲,邮件程序从服务器接收邮件,其实就是一个对话过程,POP协议就是用于电子邮件的一门语言。
命令行pop邮件
telnetpop.21cn.com110
+OKHermesPOPservice()isready.
usermr22
+OK
passsvtest
+OKmr22@21cn.comhas42messages(3846240octets)
stats
+OK423846240
list
+OK423846240
1637170
27047
31444
410938
53573
Retr6
SMTP协议原理
SMTP-简单邮件传输协议(SimpleMailTransferProtocol),是定义邮件传输的协议,它是基于TCP服务的应用层协议。
命令行发邮件
ehloxxxx
250-21cn.com,helo(DELAYED)
250-EXPN
250-HELP
250-8BITMIME
250-AUTH=LOGINPLAIN
250-AUTHLOGINPLAIN
250XTMD
authlogin
什么是域名?域名由什么构成?
域名是internet上用来寻找网站所用的名字,是internet上的重要标识,相当于主机的门牌号码。每一台主机都对应一个IP地址,每一个IP地址由一连串的数字组成,如101.25.11.34。人们为了方便记忆就用域名来代替这些数字来寻找主机,如mydomain.com。每一个域名与IP地址是一一对应的,人们输入域名,再由域名服务器(DNS)解析成IP地址,从而找到相应的网站。每一个网址和EMAIL都要用到域名。在英文国际域名中,域名可以英文字母和阿拉伯数字以及横杠“-”组成,最长可达67个字符(包括后缀),并且字母的大小写没有区别,每个层次最长不能超过22个字母。在国内域名中,三级域名长度不得超过20个字。
什么是DNS?
域名管理系统DNS(DomainNameSystem)是域名解析服务器的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。比如:我们上网时输入的www.163.com会自动转换成为202.108.42.72
什么是A记录?
A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的webserver上。同时也可以设置您域名的二级域名。
什么是NS记录?
NS(NameServer)记录是域名服务器记录
,用来指定该域名由哪个DNS服务器来进行解析。
什么是别名记录(CNAME)?
也被称为规范名字。这种记录允许您将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就是“www.mydomain.com”和“mail.mydomain.com”。实际上他们都指向“host.mydomain.com”。
什么是泛域名解析?
泛域名解析定义为:客户的域名a.com,之下所设的*.a.com全部解析到同一个IP地址上去。比如客户设b.a.com就会自已自动解析到与a.com同一个IP地址上去。
什么是MX记录?
MX(MailExchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给user@mydomain.com时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在,用户计算机就将邮件发送到MX记录所指定的邮件服务器上。
检查MX记录是否存在的方法
进行DNS查询的一个非常有用的工具是nslookup,可以使用它来查询DNS中的各种数据。可以在Windows的命令行下直接运行nslookup进入一个交互模式,在这里能查询各种类型的DNS数据。
DNS的名字解析数据可以有各种不同的类型,有设置这个zone的参数的SOA类型数据,有设置名字对应的IP地址的A类型数据,有设置邮件交换的MX类型数据。这些不同类型的数据均可以通过nslookup的交互模式来查询,在查询过程中可以使用settype命令设置相应的查询类型。如:C:》nslookupDefaultServer:[202.106.184.166]Address:202.106.184.166
》settype=mx
》sina.com.cnDefaultServer:[202.106.184.166]Address:202.106.184.166
Non-authoritativeanswer:
sina.com.cnMXpreference=10,mailexchanger=sinamx.sina.com.cn
sina.com.cnnameserver=ns1.sina.com.cn
sina.com.cnnameserver=ns3.sina.com.cnsinamx.sina.com.cninternetaddress=202.106.187.179sinamx.sina.com.cninternetaddress=202.106.182.230ns1.sina.com.cninternetaddress=202.106.184.166ns3.sina.com.cninternetaddress=202.108.44.55
如果所要查的某域名的MX记录不存在,则出现与以下类似的提示:C:》nslookup》settype=mx》amaxit.com.cnDefaultServer:[202.106.184.166]Address:202.106.184.166
***202.106.184.166can’tfindamaxit.com.cn:Non-existentdomai
|
|
|
|