3.简单邮件传送协议(SMTP)
电子邮件(E-mail)是Internet上使用最多的网络服务之一,很多用户最初接触Internet都是从收发电子邮件开始的。Internet上广泛使用的电子邮件协议是简单邮件传送协议(Simple Mail Transfer Protocol,SMTP),这个协议也使用客户机/服务器操作方式。也就是说,发送邮件的机器起SMTP客户的作用,连接到目的端的SMTP服务器上。而且只有在客户机成功地把邮件传送给服务器之后,才从本地机器中删除报文。这样,通过端到端的连接保证了邮件传送的可靠性。
后台进程把目的端机器标识变换成网际地址(可能要通过本地的通信主机登记表或DNS服务器),并且与远程邮件服务器软件(端口号为25)建立TCP连接,以便投递报文。如果连接成功,发送端后台进程就把报文复制到目的端系统的假脱机存储区,并删除本地的邮件报文副本;如果连接失败,就记录下投递时间,然后结束。邮件系统定期扫描假脱机存储区,查看是否有未投递的邮件。如果发现有未投递的邮件,便准备再次投递。对于长时间(比如3天)不能投递的邮件,便返回发送者。
通常E-mail地址包括两部分:邮箱地址(或用户名)和目标主机的域名。例如:
elinor@cs.ucdavis.edu
就是一个标准的SMTP邮件地址。
电子邮件报文分为报头和报体两部分,中间隔一空行。报头由若干字段组成,每个字段占一行,其内容关系到报文的传送和接收。每个字段由字段名、冒号和值共3个部分组成,表5-9中列出了主要的字段名和它们的作用。图5-48是一个电子邮件的例子。
![]() |
![]() |
| 图5-48 电子邮件的例子 |
邮件写完后通过客户端和服务器端对话完成发送和接收过程。SMTP提供了一组对话命令,所有命令都由关键字和参数组成。关键字的主要部分缩写为4个大写字符,其中HELO表示Hello,RCPT表示recipient(接收者)。发送图5-48的电子邮件的对话过程如下(C:表示客户端发出的命令,S:表示服务器端返回的响应):
S:220 nnsc.nsf.net SMTP service ready
C:HELO nisc.sri.com
S:250 nnsc.nsf.net says hello to nisc.sri.com
C:MAIL FROM:
C:RCPT TO:<calloc@nnsc.nsf.net>
S:250 recipient OK
C:RCPT TO:
C:DATA
S:354 Send mail; end with
C:输入邮件报体的若干行
C:输入邮件报体的最后一行
C:
S:250 message accepted
C:QUIT
S:221 nnsc.nsf.net Service closing connection
| 回书目 上一节 下一节 |