- 中文名
- 简单邮件传输协议
- 外文名
- Simple Mail Transfer Protocol
- 简 称
- SMTP
- 作 用
- 传输系统之间的邮件信息
- 端 口
- 25
目录
SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange)DNS。 [2]
Sendmail是最早使用SMTP的邮件传输代理之一。到2001年至少有50个程序将SMTP实现为一个客户端(消息的发送者)或一个服务器(消息的接收者)。一些其他的流行的SMTP服务器程序包括了Philip Hazel的exim,IBM的Postfix,D. J. Bernstein的Qmail,以及Microsoft Exchange Server。 [2]
由于这个协议开始是基于纯ASCII文本的,它在二进制文件上处理得并不好。诸如MIME的标准被开发来编码二进制文件以使其通过SMTP来传输。今天,大多数SMTP服务器都支持8位MIME扩展,它使二进制文件的传输变得几乎和纯文本一样简单。 [2]
SMTP是一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E—mail寄到收信人的服务器上了,整个过程只需要几分钟。SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或中转用户发出的电子邮件。 [3]
SMTP是一种提供可靠且有效电子邮件传输的协议。它是建立在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。 [3]
SMTP重要的特性之一是它能跨越网络传输邮件,也即“SMTP邮件中继”。使用SMTP,可实现相同网络上处理机之间的邮件传输,也可以通过中继器或网关实现某处理机与其它网络之间的邮件传输。具有域名服务系统(DNS)功能的邮件交换服务器还可以用来识别出传输邮件的下一跳IP地址。 [3]
SMTP协议的工作过程可分为如下3个过程: [4]
(1)建立连接:在这一阶段,SMTP客户请求与服务器的25端口建立一个TCP连接。一旦连接建立,SMTP服务器和客户就开始相互通告自己的域名,同时确认对方的域名。 [4]
(2)邮件传送:利用命令,SMTP客户将邮件的源地址、目的地址和邮件的具体内容传递给SMTP服务器,SMTP服务器进行相应的响应并接收邮件。 [4]
(3)连接释放:SMTP客户发出退出命令,服务器在处理命令后进行响应,随后关闭TCP连接。 [4]
下面通过一个实例进行说明。在本例中,假设邮件从名为panwei@163. com的发件人电子邮件箱(运行SMTP客户进程,具体显示为C)传送到名为network@xmu. edu. cn的收件人电子信箱(运行SMTP服务器进程,具体显示为S),具体的命令和响应信息如下:telnetwww.example.com25它打开一个从发送的机器到主机www.example.com的SMTP连接。 [5]
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号端口监听连接请求,客户端发送HElO命令以标识发件人自己的身份,服务器做出响应。然后,客户端发送MAII)命令,服务器以OK作为Ⅱ向应,表明准备接收。客户端发送RCPT命令以标识电子邮件的收件人,可以有多个RCPT行,即一份邮件可以同时发送给多个收件人。服务器端则表示是否愿意为收件人接收邮件。协商结束后,客户端用DATA命令发送信息,以<CRLF>表示结束输入内容。最后,控制交互的任一端可选择终止会话,为此它发出一个QUIT命令,另一端用命令221响应,表示同意终止连接,双方将关闭连接。 [5]
SMTP交换过程中服务器端发出的“250 0K”含义是一切都好。与使用其他协议一样,程序只读缩写命令和每行开头的三个数字,其余文本是用于帮助用户调试邮件软件。在命令成功时,服务器返回代码250,如果失败则返回代码550(命令无法识别)、451(处理时出错)、452(存储空间不够)、421(服务器不可用)等,354则表示开始信息输入。 [5]
SMTP的局限性表现在只能发送ASCII码格式的报文,不支持中文、法文、德文等,它也不支持语音、视频的数据。通过MIME协议,对SMTP补充。MIME使用网络虚拟终端(NVT)标准,允许非ASCII码数据通过SMTP传输。 [5]
尽管有了身份认证机制,垃圾邮件仍然是一个主要的问题。但由于庞大的SMTP安装数量带来的网络效应,大刀阔斧地修改或完全替代SMTP被认为是不现实的。Internet Mail 2000就是一个替代SMTP的建议方案。 [2]
