你是一名领域专家，对简单邮件传输协议这个概念非常了解，请给出详细的解释
user
简单邮件传输协议是指TPTCP／IP网络在MTA之间传递邮件的协议。SMTP是目前使用最广泛的邮件协议，UA向MTA发送电子邮件也使用SMTP。#### 简单邮件传输协议的内容

SMTP使用的TCP端口号是25，接收端在TCP的25号端口等待发送端来的E-mail，发送端向接收方(即服务器)发出连接要求，一旦连接成功，即进行邮件信息交换，邮件传递结束后释放连接。图1列出了SMTP协议的常用命令。

图1SMTP协议的常用命令


下面给出一个用SMTP传递邮件的典型过程。例如，我们假定一个名叫unix．ict．ac．cn的计算机(作为域ict．ac．cn的邮件服务器)要发送下列信件：
Date：Sat27April200213：26：3lBJ
From：lu@ict．ac．cn
TO：liu@cnc．ac．cn
Subject：meetinq
LetusgettogetherMondayatlpm
首先要注意的是，根据SMTP标准(RFC822)，信件必须用纯ASCII码发送。该标准还规定了诸如邮件头、空一行、然后是信件本体这样的通用结构。详细定义的邮件头中行的语法，由关键字(keyword)及随后的具体值(value)两部分组成。在我们的例子中，收件人由liu@cnc．ac．cn表示，它简单地对应计算机xenix．cnc．ac．cn(作为域cnc．ac．cn的邮件服务器)上的用户liu；发件人由1u@ict.ac．cn表示，它对应计算机unix．ict．ac．cn上的用户1u。
发送方邮件软件从本地计算机的通信主机登记表(在UNIX操作系统上，主机表放在／etc／hosts文件中)或网上的名字服务器那里得知xenix．cnc．ac．cn的IP地址是128．6．4．2，然后邮件程序打开一个连接到128．6．4．2的25号端口。unix和xenix都是多用户操作系统，双方计算机的邮件服务都位于本地主机。25号是众所周知的接收邮件的端口号。一旦连接建立，发送方邮件程序就开始发送命令。下面列出的是典型会话：

每行开头都标出该行信息是从unix还是从xenix发出的。在我们的例子中是unix主动发起连接的。按照标准，命令都使用普通正文。在示例会话中，命令HELO、MAIL、RCPT、DATA和QUIT都足标准ASCII命令，这样就给观察和诊断带来方便，可以将每个会话的轨迹放在一个记录文件中，以供检查，标准还规定，应答都以数字开头，并限定可以使用的应答格式。使用数字保证用户程序的应答无二义性。应答数字的后面辅以正文，通常只是为了供人阅读和记录，对于程序的操作没有影响。可能已经注意到了，会话以HELO起始，它给出启动连接的发送端邮件服务器的域名，然后描述发送者和接收者。如果邮件要发给多个用户，则可以有多个RCPT命令。最后发送数据。要注意，邮件的正文用仅包含一个句点“·”的行结束。
需要强调的是，SMTP规定了对任一给定命令可以发送的应答。以2开头的应答表示成功，以3开头的应答表明需要有进一步的动作。4和5开头表示错误：4开头是暂时性错误，比如磁盘满；5开头则是永久性错误，例如接收用户不存在。图2列出了SMTP协议的应答代码。这些应答代码分类如图3所示。

图2SMTP协议的应答代码



图3SMTP应答代码分类


从上面的例子可以看出，邮件传递分五大部分：第一部分是建立邮件连接，第二部分是标识发送者，第三部分是标识接收者，第四部分是传递邮件数据，第五部分是结束邮件连接。
assistant