Mail,邮件服务(一):邮件服务的历史及运作机制

Mail,邮件服务(一):邮件服务的历史及运作机制

 

首先我们先来回想一下现在经常接触的关于邮件服务的相关协议:

         POP3:Post Office Protocol:让用户能够到远程服务器上,通过自己的账号和密码能够检索自己的邮件的协议。

         SMTP: 简单邮件传输协议:邮件路由协议,仅仅是用来实现邮件传输的。传递到目的地之后如何做,则跟SMTP没有任何关系了。

        

         SMTP的起源:

SMTP的前身是UUCP(Unix to Unix Copy Protocol),不过现在UUCP已经很难见到了。UUCP其实仅仅只是复制信息。刚开始的时候,PC机还没有出现,而当时的机子叫Mainframe(大型机),这种机器只能有一个用户来使用。而机器其实连接在其他的在线的大型机,当你从这个机器登录之后,其实就是登录了大型机的系统中(邮件服务器的系统)。然后把一台主机的家目录中的信息,通过一种机制传递到另一台主机的系统的家目录中。这就是UUCP。

小扩展:SMTP也是C/S架构的。相对于SMTP而言,服务器端进程叫做 smtpd,客户端叫做smtp。为了实现邮件功能我们需要在服务器上开一个公共位置,可以让每一个有邮箱的人访问这个位置,smtpd可以在其中有写入的权限。每一个用户在公共场所的邮箱,只能有两类人访问,一类是邮箱的拥有者,另一类是发送邮件的那个进程。

 

我们的用户要想收取邮件并查看如何查看呢?我们系统中会有一个crontab的脚本,它会在用户登陆的时候告诉他你有新邮件,用户只需要执行Mail命令,执行之后mail命令会帮助用户把邮箱里的邮件直接拿回自己的家里。在此时,仅有SMTP就可以完成所有工作了。此时是根本用不到pop3协议的。那pop3又是如何出现的呢?

 

POP3的起源

我们已经进入pc时代,每个人都有了个人的电脑。而我们的个人电脑一般是没有邮件服务器的,即使我们真的架设了个人服务器,服务器也不会是7*24小时在线的,这样的话,当有人给你发邮件的时候,发现主机不在线,这怎么办?于是我们需要全天在线的真正的邮件服务器,但是这些邮件服务器我们又连入不了。这时怎么办呢?此时一个远程的邮件服务器,而且远程服务器还应该添加如下的功能。

1.要能验证用户的身份。

2.只能取得自己的邮件。

3取得的邮件可以传回自己的pc机上去。

 

于是,pop3服务应运而生!

POP3服务能够监听客户端去帮助用户检索自己邮件的请求。pop3检测到之后,会先让用户验证自己的身份,当验证之后,它会以用户的身份为令牌去邮筒中找到用户的邮件,并且通过pop3返回给用户。(注意:接受的时候,用的是pop3协议,当你发邮件的时候用的是smtp服务。)

 

Webmail!

Webmail:这是我们现在用的最常用的,通过web页面,实现邮件收发。之前的都需要一个专用的邮件收发工具,而现在我们很多系统已经没有这个工具。所以Webmail就出现了,这是服务器更体贴的一个功能:

我们通过Web服务器,开发一个页面,这个页面上有一个CGI,这个程序工作在一个平台上,它能以一个用户的身份来访问pop3.然后将获取到的pop3信息,在Web页面上展示给用户查看。注意:在这种情况下用户的邮件是不会拿到用户pc的家目录的(客户端方式的邮件服务,是可以将邮件服务器中的邮件下载到本地的)。当用户需要发邮件的时候,Web服务器又会调用本地的程序,发起一个SMTP请求,来让用户发邮件。现在互联网上80%的用户都使用的是Webmail。

 

邮件服务器可以说是我们互联网上使用的几个系统中最复杂的系统了。

 

邮件服务中的关键词:中继服务

中继功能:Relay。是什么意思呢?比如:A想给C发邮件,但是不知道C在哪,但是B知道C在哪,所以A就先把邮件发送给了B,让B进行转发。那么B到底帮不帮呢?A如果发的是个垃圾邮件怎么办?在最初的时候,人们都很单纯,那时候用计算机的人都少,大家也都愿意帮忙别人转发,所以那时的B肯定是帮忙转发的,这种叫做OpenRelay。但是现在,有了垃圾邮件,所以几乎所有的邮件服务器都关闭了中继服务。

邮件服务器接受到邮件之后,但凡是发现邮件是发送给自己域内的用户的,这种就不叫中继了,邮件服务器会无条件接受这封邮件的。但是当我们发邮件的时候总要用到中继,不使用中继我们可能连邮件都发不出去了,那怎么办呢?聪明的你可能已经想到了,是的,身份认证!但是我们的邮件服务器都不具备认证功能,所以这时就要借助其他的软件来进行认证,这种协议就叫SASL(Simple Authentication Security Layer):简单认证安全层。

SASL本身不做认证,它只是一个认证的机制。如果想认证,还需要再去找支持使用SASL认证机制的软件来帮忙认证。

此时,我们既能提供中继了,又为了安全能够提供认证了。但是那些恶意的用户照样可以绕过这个机制,注册一个用户来完成垃圾邮件的散播,这时怎么办呢?于是一般的服务器就默认的拒绝那些ip地址和域名不能实现正反解析对照的用户。但是要是恶意用户自己买个域名拥有ip,可以实现正反解析怎么办呢?于是我们的邮件服务器就又完成了垃圾邮件筛选器。我们筛选邮件的时候,就需要拥有垃圾邮件的特征码,规则库,等级筛选来定义,来实现。这些定义都是需要管理员来操作的。

 

 

那么总结一下,如果要组成一个完整的邮件服务,我们就需要有下面这几样东西:

A.我们得有一个组件帮我们将邮件传递过来,帮我们将邮件接收过来,邮件服务器(提供SMTP):能够提供smtp的软件,

MTA(Mail Transfer Agent邮件传输代理)

B.能够检索用户的身份并帮助用户接收邮件的:POP3服务:能够提供这种功能的如那件叫:

MRA(Mail Retravial Agent邮件取回代理)

C.服务器要把收到的邮件分类投向不同的用户的在服务器上的位置的功能,能够帮助邮件分类投递的:

MDA(Mail Delivery Agent邮件投递代理)

D.能够让用户编写邮件,并且查看等等的这个功能,所需要的软件:

         MUA:Mail User Agent(邮件用户代理)

E.还有一个功能

MSA:邮件提交代理

 

那么我们来看看为了达成这些功能,而需要使用的相关的软件

MTA的相关软件:

         Exchange:微软开发的,这个软件相当庞大,要通过微软的域的控件来实现。它的功能非常强大。既能提供SMTP还能提供其他协议的软件。

         Sendmail:邮件服务的鼻祖,全球最早的开源的邮件传递软件,到现在依然是邮件传递的顶梁柱。功能很丰富,有就爱你系统很复杂,一个公司构建Sendmail之后,想换其他的软件代价太大。但是它是单体是设计的,任何一个组件的崩溃都将导致整个的系统的崩溃。整个软件安全性不高,效率不快,稳定性稍差。

         Postfix:是完全按照Sendmail来实现的。但是Postfix是模块化设计的,任何一个组件的崩溃不会导致系统的崩溃。并且投递的效率是Sendmail的4倍。安全性也要比Sendmail高许多,已经成为了企业最常用的邮件服务器软件。我们Redhat默认安装的是SendMail。

         Qmail:整体大小不超过1M,但是在服务器上测试,每秒20封以上,轻量级,效率高。Qmail的开发者是一个数学家,它的效率相当优于Postfix。但是这个的作者到2001年左右就不再维护Qmail了。虽然有人暂时的打着补丁,但是那也只是昙花一现。不得不让人额外的叹息。

 

MRA的相关软件:

         Courier-imap:可以提供4中协议。pop3,pop3s,imap4,imaps。是俄罗斯人一个人写的。

         dovecot:能够同时提供上述4种协议,而且它本身配置简单,使用方便,可以说是新贵。

 

MDA的相关软件:

         这个一般的MTA都已经提供了MDA功能

         Procmail:借助在Sendmail上的一个投递软件

         Couorier的maildrop:相当强大的一款邮件投递工具

 

MUA的相关软件

         Outlook:微软提供的专业版的邮件代理功能

         Foxmail : 比较强大的邮件代理

         pine:华盛顿大学开发的,比较早期的。

         mutt:我们以后要经常用到的。

 

MSA的相关软件

         邮件提交代理,为了减轻服务器的压力,实现本地网关,过滤本地出现的垃圾邮件和病毒邮件。以完成邮件的提交检测。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值