SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
SMTP 是一种提供可靠且有效的电子邮件传输的协议。SMTP 是建立在 FTP 文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP 独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP 的重要特性之一是其能跨越网络传输邮件,即“SMTP 邮件中继”。使用 SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。
简介
SMTP 是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过 telnet 程序来测试一个 SMTP 服务器。SMTP 使用 TCP 端口 25。要为一个给定的域名决定一个 SMTP 服务器,需要使用 MX (Mail eXchange)DNS。
在八十年代早期 SMTP 开始被广泛地使用。当时,它只是作为 UUCP 的补充,UUCP 更适合于处理在间歇连接的机器间传送邮件。相反,SMTP 在发送和接收的机器在持续连线的网络情况下工作得最好。
Sendmail 是最早使用 SMTP 的邮件传输代理之一。到 2001 年至少有 50 个程序将 SMTP 实现为一个客户端(消息的发送者)或一个服务器(消息的接收者)。一些其他的流行的 SMTP 服务器程序包括了 Philip Hazel 的 exim,IBM 的 Postfix,D. J. Bernstein 的 Qmail,以及 Microsoft Exchange Server。
由于这个协议开始是基于纯 ASCII 文本的,它在二进制文件上处理得并不好。诸如 MIME 的标准被开发来编码二进制文件以使其通过 SMTP 来传输。今天,大多数 SMTP 服务器都支持 8 位 MIME 扩展,它使二进制文件的传输变得几乎和纯文本一样简单。
SMTP 是一个“推”的协议,它不允许根据需要从远程服务器上“拉”来消息。要做到这点,邮件客户端必须使用 POP3 或 IMAP。另一个 SMTP 服务器可以使用 ETRN 在 SMTP 上触发一个发送。
功能
SMTP 是一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式。SMTP 协议属于 TCP/IP 协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过 SMTP 协议所指定的服务器,我们就可以把 E—mail 寄到收信人的服务器上了,整个过程只需要几分钟。SMTP 服务器是遵循 SMTP 协议的发送邮件服务器,用来发送或中转用户发出的电子邮件。
SMTP 是一种提供可靠且有效电子邮件传输的协议。它是建立在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。
SMTP 重要的特性之一是它能跨越网络传输邮件,也即“SMTP 邮件中继”。使用 SMTP,可实现相同网络上处理机之间的邮件传输,也可以通过中继器或网关实现某处理机与其它网络之间的邮件传输。具有域名服务系统(DNS)功能的邮件交换服务器还可以用来识别出传输邮件的下一跳 IP 地址。
工作过程
SMTP 协议的工作过程可分为如下 3 个过程:
(1)建立连接:在这一阶段,SMTP 客户请求与服务器的 25 端口建立一个 TCP 连接。一旦连接建立,SMTP 服务器和客户就开始相互通告自己的域名,同时确认对方的域名。
(2)邮件传送:利用命令,SMTP 客户将邮件的源地址、目的地址和邮件的具体内容传递给 SMTP 服务器,SMTP 服务器进行相应的响应并接收邮件。
(3)连接释放:SMTP 客户发出退出命令,服务器在处理命令后进行响应,随后关闭 TCP 连接。
SMTP 通信举例
下面通过一个实例进行说明。在本例中,假设邮件从名为 panwei@163. com 的发件人电子邮件箱(运行 SMTP 客户进程,具体显示为 C)传送到名为 network@xmu. edu. cn 的收件人电子信箱(运行 SMTP 服务器进程,具体显示为 S),具体的命令和响应信息如下:telnetwww.example.com25 它打开一个从发送的机器到主机 www.example.com 的 SMTP 连接。
S:(注:等待连接 TCP 的 25 号端口,该端口对应 SMTP 服务)
C:(注:打开与服务器的连接)
S: 220 xmu. edu. cn SMTP Service ready(注:服务器的 TCP 连接就绪)
C: HELO 163.com
S: 250 xmu. edu. cn says hello
C:MAIl. FROM:<panwei@163.com>
S:250 0K
C: RCPT TO:<network@xmu.edu.cn>
S:250 0K
C:DATA
S:354 Start mail input; end with<CRLF>.<CRLF>
C:…sends body of mail message..
C:…Dear xxx..
C:<CRLF>.<CRLF>
S:250 OK
C:QUIT
S: 221 xmu. edu. cn Service closing transmission channel
以上所示的是一个简单的 SMTP 交换过程,包括了连接建立、邮件传送和连接释放三个具体过程:首先建立 TCP 连接,SMTP 调用 TCP 协议的 25 号端口监听连接请求,客户端发送 HEl。()命令以标识发件人自己的身份,服务器做出响应。然后,客户端发送 MAII)命令,服务器以 OK 作为Ⅱ向应,表明准备接收。客户端发送 RCPT 命令以标识电子邮件的收件人,可以有多个 RCPT 行,即一份邮件可以同时发送给多个收件人。服务器端则表示是否愿意为收件人接收邮件。协商结束后,客户端用 DATA 命令发送信息,以<CRLF>表示结束输入内容。最后,控制交互的任一端可选择终止会话,为此它发出一个 QUIT 命令,另一端用命令 221 响应,表示同意终止连接,双方将关闭连接。
SMTP 交换过程中服务器端发出的“250 0K”含义是一切都好。与使用其他协议一样,程序只读缩写命令和每行开头的三个数字,其余文本是用于帮助用户调试邮件软件。在命令成功时,服务器返回代码 250,如果失败则返回代码 550(命令无法识别)、451(处理时出错)、452(存储空间不够)、421(服务器不可用)等,354 则表示开始信息输入。
SMTP 的局限性表现在只能发送 ASCII 码格式的报文,不支持中文、法文、德文等,它也不支持语音、视频的数据。通过 MIME 协议,对 SMTP 补充。MIME 使用网络虚拟终端(NVT)标准,允许非 ASCII 码数据通过 SMTP 传输。