一、E-Mail的起源和概述:
1971年10月,美国工程师汤姆林森(Ray Tomlinson)于所属BBN科技公司在剑桥的研究室,首次利用与ARPANet连线的电脑传送讯息至指定的另一台电脑(ARPA Net为今日网际网路的前身,由美国国防部所研发),这便是电子邮件的起源。
在这之后,电子邮件系统经历了一个较长的发展历程才逐渐稳定下来。直到80年代中期,个人电脑(PC)广泛流行,电子邮件才开始被广泛使用。
二、E-Mail的格式:
E-mail(电子邮件)象普通的邮件—样,也需要地址,它与普通邮件的区别在于它是电子地址。所有在Internet之上有信箱的用户都有自己的一个或几个Email Address,并且这些Email address都是唯一的。邮件服务器就是根据这些地址,将每封电子邮件传送到各个用户的信箱中,Email address就是用户的信箱地址。就象普通邮件一样,你能否收到你的E-mai1,取决于你是否取得了正确的电子邮件地址(你需要先向邮件服务器的系统管理人员申请注册)。
—个完整的Internet邮件地址由以下两个部分组成,格式如下:loginname@full host name .domain name 即:登录名@主机名.域名
中间用符号“@”(at)分开,符号的左边是对方的登录名,右边是完整的主机名,它由主机名与域名组成。其中,域名由几部分组成,每一部分称为一个子域(Subdomain),各子域之间用圆点“.”隔开,每个子域都会告诉用户一些有关这台邮件服务器的信息。
假定E-Mail地址为:[email protected] 这个E-Mail地址告诉我们:这是位于(at)"xxx.com"公司的一个名为"abc"的电子邮件地址。
E-Mail的格式被定义在"RFC 822 - Standard For The Format Of ARPA Internet Text Messages"中,详细信息可自行查阅。
二、E-Mail的使用方式:
因为使用方式上的差异,我们可以将E-Mai的收发划分为两种形式:Web Mail和基于客户端的E-Mail。
@ Web Mail:顾名思义,我们可以直译为“网页邮件”,就是使用浏览器,然后以WEB(网页)方式来收发电子邮件。
@ 基于客户端的E-Mail:从它的名字,我们就知道这种E-Mail的收发需要通过客户端的程序来进行。这样的E-Mail客户端程序,我们比较熟悉的有Outlook Express、Foxmail等等。
Web Mail使用浏览器来进行邮件的收发,使用起来比较麻烦,因为每次使用时我们都需要打开相应的页面,然后输入自己的用户名和密码,才能够进入自己的E-Mail帐户。
而使用E-Mail客户端则比较简单,安装配置好我们的E-Maill客户端后,使用的时候只需要打开E-Mail客户端程序,然后单击鼠标,便可以进行邮件的收发了。
我们采用何种方式收发E-Mail,一方面取决于场合。在办公室里我们固定的计算机上,可以安装一个自己比较喜欢使用的E-Mail客户端程序,然后进行邮件的收发。但是如果我们在网吧等公共的计算机上,就不可能在配置E-Mail客户端,然后进行邮件的收发,我们只能以WEB方式来收发邮件。
上面讲的场合是一方面原因,另一方面是我们的E-Mail服务商或我们所使用的E-Mail服务器端程序来决定的。当然,现在Internet上的大多数免费或收费电子邮件一般均提供Web Mail和E-Mail客户端两种方式,但不是全部,比如雅虎电邮(www.yahoo.com.cn)就只提供WEB Mail方式。
三、E-Mail所使用的协议:
我们使用E-Mail客户端程序时,需要事先配置好,其中最重要的一项就是配置:接收邮件服务器和发送邮件服务器,而通常我们的配置就是:新浪网(接收邮件服务器:pop3.sina.com.cn 发送邮件服务器:smtp.sina.com.cn)、TOM网(接收邮件服务器:pop.tom.com 发送邮件服务器:smtp.tom.com)
从上面的例子中我们就知道了E-Mail经常使用的协议:pop3和smtp。
@ POP3协议:POP3(Post Office Protocol 3)协议通常被用来接收电子邮件,使用TCP端口110,被定义在RFC1939中。
这个协议很容易学,因为它只包含12个命令(其中有3个你完全可以忽略它们的存在)。这些命令被客户端计算机用来发送 给远程服务器。反过来,服务器返回给客户端计算机两个回应代码。
服务器通过侦听TCP端口110开始POP3服务。当客户主机需要使用服务时,它将与服务器主机建立TCP连接。当连接建立后,POP3发送确认消息。客户和POP3服务器相互(分别)交换命令和响应,这一过程一直要持续到连接终止。
@ SMTP协议:SMTP(Simple Mail Transfer Protocol - 简单邮件传输协议)协议通常被用来发送电子邮件,使用TCP端口25,被定义在RFC821中。
SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束,响应包括一个表示返回状态的三位数字代码。
SMTP在TCP协议25号端口监听连接请求。
SMTP的连接和发送过程:
a. 建立TCP连接;
b. 客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令,服务器端以OK作为响应,表明准备接收;
c. 客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行,服务器端则表示是否愿意为收件人接受邮件;
d. 协商结束,发送邮件,用命令DATA发送;
e. 以.表示结束输入内容一起发送出去;
f. 结束此次发送,用QUIT命令退出。
E-Mail系统所使用的协议,除了上面我们熟悉的POP3和SMTP外,还有IMAP、LDAP、MIME。
@ IMAP协议:IMAP(Internet Message Access Protocol - Internet消息访问协议)协议被用来接收电子邮件,目前使用比较多的是IMAP4,使用TCP端口143,被定义在RFC2060中。
同POP3相比,IMAP可以实现更加灵活高效的邮箱访问和信息管理,使用IMAP可以将服务器上的邮件视为本地客户机上的邮件。在用传统POP3收信的过程中,用户无法知道信件的具体信息,只有在全部收入硬盘后,才能慢慢地浏览和删除;也就是说,使用POP3,用户几乎没有对邮件的控制决定权。使用IMAP,邮件管理就轻松多了:在连接后,可以在下载前预览全部信件的主题和来源,即时判断是下载还是删除。也就是说,对于可恶的垃圾邮件,只要根据主题判定,就可以直接在服务器上删除。
具备智能存储功能,可使邮件保存在服务器上。办公一族可以将单位处理不完的邮件,回家后继续通过IMAP来查看。
@ LDAP协议:LDAP(Lightweight Directory Access Protocol - 轻量级目录访问协议) 协议使用TCP端口389,并定义在RFC 2251/RFC 1823中。
LDAP允许客户端在 Exchange 目录中查询几乎所有种类的信息。它最常用于访问邮箱属性,以便在写邮件时,发件人能够了解收件人的更多详细情况。LDAP 协议不限制它自己的实现。它可用于读和写邮箱信息,或任何种类的基于目录的信息。
@ MIME协议:MIME(Multipurpose Internet Mail Extensions - 多用途Internet邮件扩展)协议是对RFC822的扩展,被定义在RFC2045 - RFC2049中。
Internet上的SMTP传输机制是以7位二进制编码的ASCII码为基础的,适合传送文本邮件。而声音、图象、中文等使用8为二进制编码的电子邮件需要进行ASCII转换(编码)才能够在Internet上正确传输。
MIME增强了在RFC 822中定义的电子邮件报文的能力,允许传输二进制数据。MIME编码技术用于将数据从8位都使用的格式转换成数据使用7位的ASCII码格式。
四、增强E-Mail的安全性:
在传统E-Mail的基础上,人们对其安全性提出了更高的要求,为了增强传统E-Mail的安全性,得到安全的电子邮件,我们可以采取两种方式。
1. 采用SSL(Secure Sockets Layer - 安全套接层协议):
SSL是Netscape用来在应用协议(如http、telnet、nntp或者ftp)和更低的TCP/IP层之间提供数据安全的协议。他提供三种基本的安全特征:
(1). 保密性: 保密是通过对进程加密来实现的。根据连接双方的秘密协商,对称加密的密钥对每个连接都是唯一的.
(2). 服务器认证: 客户端要检查一个有效服务器的X.508v3证明,不论是一个RSA公开密钥证明,一个数字签名标准(DSS)证明,还是一个Diffie-Hellman证明。证明一般是由可信的证明代理发出的。
(3). 信息完整信: 信息完整性(不被改动或者丢失)是由MAC(Message Authentication Code)保护的,它是一个根据信息和秘密数据进行计算的单项哈希函数。
另外,SSL提供一个可选的客户端认证。SSL的其他功能以及特殊的服务器认证被广泛应用于电子商务。虽然不同的Web浏览器以不同的方式指明一个安全的SSL连接,但是以“https://”开始的URL指明在客户端和服务器之间已经建立了一个安全的连接。
采用SSL实现安全的电子邮件时,我们需要专门的端口,列举如下:
POP3S: 995/TCP
SMTPS: 465/TCP
LDAPS: 636/TCP
IMAPS: 993/TCP
2. 采用TLS(Transport Layer Security):
TLS是由Transport Layer Security Working Group起草的,产生了一个RFC文档—RFC2246。TLS用来建立一个安全的“会话”——它是一个客户机和一个服务器之间的关联,用来避免进行昂贵的协商来为每个新的安全参数建立一个额外的连接。该协议分为上层的TLS Handshake协议和下层的TLS Record协议。TLS Handshake协议为一个安全的会话建立加密参数。当使用TLS的客户端和服务器建立通信时,他们对协议版本达成一致,选择加密算法,还可以互相进行认证,并使用公开密钥加密技术来产生共享的秘密。
采用TLS实现安全的电子邮件时,我们不需要再开专门的端口,比如POP3,我们只需要在原来的 POP3(110) 端口上,加上 STARTTLS 的功能,就可以了。