6.2.6 网络基本服务----电子邮件系统(E-mail)

6.2.6 网络基本服务----电子邮件系统(E-mail)

电子邮件系统是因特网上使用的最多且最受用户欢迎的一种应用

电子邮件系统包括用户代理和邮件服务器,提供收发邮件、邮件传送服务,邮件被传送到收信人邮件服务器的收信人信箱中,收信人可随时上网到其邮件服务器读取。

1982年制定了简单邮件传送协议SMTP(Simple Mail Transfer Protocol)和因特网文本报文格式,他们都已成为因特网的正式标准。

1993年提出了通用因特网邮件扩展MIME(Multipurpose Internet Mail Extensions),MIME重新定义了邮件/消息的格式,在MIME邮件中可同时传送多种类型的数据。

一、电子邮件发送接收过程

电子邮件系统包含用户代理和邮件服务器如图所示

电子邮件系统

用户代理UA是用户与电子邮件系统的接口,用户代理的功能是撰写、显示和处理邮件

邮件服务器的功能是发送和接收邮件同时还要向发信人报告邮件传送的情况(如已交付、被拒绝、丢失等)。邮件服务器基于客户/服务器方式工作,一个邮件服务器既可以作为客户也可以作为服务器。

邮件服务器需要使用两个不同的协议:SMTP协议用于发送邮件,邮局协议如POP3是用来接收邮件的协议。电子邮件的发送和接收过程如下:

  1. 首先发信人调用用户代理,编辑要发送的邮件,用户确认发送后用户代理使用SMTP协议将邮件传送给发送端邮件服务器
  2. 发送端邮件服务器,将邮件放入邮件缓存队列当中等待发送。
  3. 运行在发送端邮件服务器的SMTP客户进程,发现邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起TCP连接的建立。
  4. TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器进程发送邮件。但所有到该SMTP服务器的待发送邮件发完了,SMTP就关闭所有建立的TCP连接。
  5. 接收端邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。
  6. 收信人在打算收信时,调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回(如果邮箱中有来信的话)。
二、电子邮件组成
  1. 一个电子邮件由信封(envelope)和内容(content)两部分组成,信封包含完成传输和交付所需要的信息,内容是地送给收信人的对象。

  2. 电子邮件的传输程序根据邮件信封上的信息来传送邮件。在邮件的信封上最重要的就是收信人的地址

  3. 用户在从自己的邮箱中读取邮件时才能见到邮件的内容

  4. [RFC 822]之规定了邮件内容的格式和一些语义,不包含信封中信息的规范,规定了邮件内容中首部(header)的格式,而内容主体(message body)部分则让用户自由撰写。message = fields*(CRLF * text),这其中规定的内容首部必须在主体之前写一个空行结束,所谓的空行就是两个连续的回车换行。因为首部每个字段也以回车换行结束,所以这里的首部是两个连续的回车换行结束。

  5. 用户写好首部后,邮件系统将自动提取信封所需要的信息,并写在信封上。所以用户不需要填写电子邮件信封上的信息。

  6. 邮件内容首部包含一些字段,协议不要求首部字段以特定顺序出现。字段后面要加上冒号,最重要的字段是:To和Subject。

    • “To:”后面填入一个或多个收信人的电子邮件地址。用户可以打开地址簿点击收信人的名字,收信人的电子邮件地址就会自动的填入到合适的位置上。
    • “Subject:”是邮件的主题。它反映了邮件的主要内容,便于用户查找邮件
    • “Cc:”表示抄送,给某某人发送一个邮件副本。
    • "from:"和“Date:”表示发信人的电子邮件地址和发信日期。
    • "Reply-To:"是对方回信所使用的地址
  7. TCP/IP 体系的电子邮件系统规定电子邮件地址格式如下:

    收信人邮箱名@邮箱所在主机的域名

    这里需要注意的邮箱用户名在邮箱所在主机域名的范围内是惟一的。邮箱所在主机的域名在全世界必须是惟一的。

三、简单邮件传送协议 SMTP

SMTP所规定的就是在两个相互通信的SMTP进程之间应如何交换信息。

由于SMTP使用客户/服务器模式,因此负责发送邮件的SMTP进程就是SMTP客户,而负责接收邮件的SMTP进程就是SMTP服务器。SMTP设计基于下图的通信模型

模型

当点击确认发送邮件后,Sender-SMTP与Receiver-SMTP建立双向的传输通道,Receiver-SMTP既可能是最终的终点也可能是中间的服务器。

  1. Sender-SMTP产生SMTP命令,命令被发送到Receiver-SMTP,作为相应,应答会从Receiver-SMTP发送回Sender-SMTP
  2. 一旦建立的传输信道,Sender-SMTP会发送一个mail命令,指示邮件的发送者是谁,如果Receiver-SMTP能够接受邮件的话就用Ok作为应答来响应。
  3. Sender-SMTP会发送一个RCPT命令,标识邮件的收信人。如果Receiver-SMTP能够接收给收信人的邮件,则用OK应答作为相应,如果不能则拒绝收信人的应答。Sender-SMTP和Receiver-SMTP可能协商多个收信人,当协商好收信人时,Sender-SMTP会发送邮件数据。如果Receiver-SMTP成功处理了邮件数据,就会以ok作为应答。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值