• TCP/IP电子邮件系统
      2012-02-03

     

    TCP/IP电子邮件系统

         在概念上,TCP/IP的电子邮件系统也分为用户界面和文电传输两部分,但文电传输部分并未独立出来,形成一个类似于MOTIS中 MTA的概念。其中的原因在于TCP/IP自始至终坚持端到端的思想,它的电子邮件系统也不例外地采用端到端的传输方式,不存在邮件的存储转发问题,因此也就没有必要引入像MTA一样负责存储转发的机构了。

        在端到端方式中,虽然初始主机要参与邮件传输的全过程,但由于TCP/IP下层协议的简洁性,其效率反而比存储转发来得高。

        同MOTIS一样,TCP/IP电子邮件系统要解决的首要问题也是收方主机(叫作远地机)暂时不能访问(比如未开机、出故障、不能建立网络连接等)时,如何发送电子邮件的问题。在TCP/IP的术语中,这叫延迟传递(de1ayed delivery)。

    电子邮件系统的优点是即便远地机不可访问,发送者也可以把文电发送出去。为此TCP/IP采用spooling缓冲技术,将用户收发文电与实际的文电传输区别开,这种划分实际是UA和MTA划分的原型。其原理如图5.2.2所示。

    TCP/IP电子邮件系统spooling原理

       用户界面相当于UA,客户十服务器相当于MTA。用于发送邮件的spooling区和接收邮件的邮箱相当于MS,起缓冲作用。客户和服务器所在机器叫邮件交换机(mail exchanger)。

        用户发送邮件时,首先利用用户界面生成邮件,然后把它传给发送邮件spooling区,相当于文电从 UA到MS。然后的整个发送过程用户都不必关心,等待关于发送结果的报告就可以了。负责发送邮件的客户(相当于MTA的发送部分)是一个后台进程,它一发现发送缓冲区有邮件待发,立刻将其取出,并把信宿机名映射成IP地址,然后请求与对方的服务器(相当于MTA的接收部分)建立TCP连接。如果连接成功,便发送邮件,对方服务器将接收到的邮件存放在接收邮件邮箱(相当于MS)中;发送完后,客户将相应邮件从发送缓冲区删除。假如连接不成功,客户记下发送时间。客户进程周期性地检查发送缓冲区,每当它发现未发邮件,或用户传来一个新邮件,客户立即着手发送。当发现某邮件很长时间(如有些系统将这个时间设置为 3天)都发不出去,客户将它返回发送者。