一直没有成熟的协议,所以一些人开始研究利用FTP协议来发送邮件的方法。1972年8月,在RCF385《关于FTP协议的注释》中第一次提出通过扩展FTP协议的方法来发送电子邮件。之后的一些RFC文件进一步对该方案进行了改进。在1973年一次会议上,大家统一在FTP命令中使用"用户名@主机名"形式的地址来标明邮件地址,这被写入了RFC469文件。RFC498则提出了不用FTP协议进行邮件传输的方法。这些
方案由于各种原因都未能得到推广使用,ARPANET上的邮件系统一直处于各自为政的状态。
除了邮件收发的问题外,邮件格式也是电子邮件协议中的一个重要内容。1977年,洛克等人提出来一个统一的邮件格式标准,也就是后来的RFC733.但是这次统一邮件格式标准的尝试并未能获得成功。这便是早起ARPNET上的电子邮件系统。
早起的各种基于网络的电子邮件传输协议都存在这样那样的问题。要么功能不完善,要么过于复杂。人们需要的是一个全新的,易于实现而有功能强大的电子邮件传输协议。1980年,RFC772《邮件传输协议》发布了,其中描述了一个全新的邮件传输协议。但是这个协议还是过于复杂了,于是人们在它的基础上又进行了改进,纵欲在1981年的RFC780中发布了简单邮件传输协议,经过一些晓得改进后,最总形成了RFC821《SMTP协议》,这也正是今天的电子邮件系统的标准传输协议。
统一的邮件传输协议自然需要统一的邮件格式,1982年,克鲁克在RFC733的基础上编写RFC822《APRAInternet文本信息格式标准》,他也最终成为电子邮件的标准格式。但是在RFC822格式中,邮件都是文本格式的,没有考虑非文本的邮件内容问题。很快人们就对电子邮件提出更多的要求,希望能用它来发送非文本格式的附件,如图片,多媒体文件等。于是在1996年又发布了RFC2045-2049,规定了MIME编码格式。通过这种格式,可以实现各种文件和文本信息之间的无损转换,这样就可以将他们封装在标准RFC822格式的文本邮件中直接发送,从而使电子邮件系统也可以发送非文本的信息了。
后来,人们根据邮件系统中使用的
问题,又陆续对SMTP协议以及其父树协议进行了一些小的修改,如增加用户身份认证功能等。到目前为止,SMTP协议的最新版本是RFC2821,邮件格式规范的最新版本是RFC2822。这便是现代电子邮件系统的出现。
但是现代的邮件系统仍然存在着许多缺陷。比如说,SMTP协议缺乏服务器之间的身份认证机制。SMTP协议完全依赖HELO或EHLO信息来获取服务器的域名身份信息,没有任何的手段来对这些信息进行核实,也就是根本无法保证这些信息的可靠性和真实性,也就很难对邮件头低的真实路径进行追查。SMTP协议是基于文本的,没有任何的加密和校验措施。这也就意味着SMTP通信本身非常容易被窃听,劫持甚至伪造,而且这种伪造几乎是没有什么成本的。除了上述缺陷以外,邮件投递的过程中的开放式转发是一个更为严重的安全缺陷。在介绍电子邮件的投递过程中,曾经介绍过,为了提高电子邮件系统对网络故障的容错能力,SMTP协议规定电子邮件在投递时,如果寄信服务器无法直接投递给收信服务器,可以投递给第三方服务器,由第三方服务器尝试着投递给收信服务器。由于在电子邮件的右箭头中只保存了投递路径上各服务器上的域名,而没有保存IP地址,加上域名信息是非常容易伪造的,因此经过中转之后的邮件很难追查其真实的源头地址。近年来虽然大部分邮件系统
软件开发者已经意识到了这个问题,并在新版本中增加了对中转的限制,但一方面由于很多实际运行的系统还在使用老版本得软件,另一方面,由于很多邮件系统管理员缺乏安全管理知识和意识,未能正确配置实用软件,导致目前还是有很多邮件系