SMTP协议
smtp原理

smtp原理
SMTP(Simple Mail Transfer Protocol)是用于发送电子邮件的
协议,它定义了电子邮件的传输过程中的规则和步骤。
SMTP协议基于客户端-服务器模型,由一个或多个客户端发
送邮件到一个或多个服务器。
一般情况下,用户会在自己的电子邮件客户端中配置SMTP服务器的地址,并使用自己的帐
户信息进行身份验证。
SMTP的工作原理如下:
1. 建立连接:客户端连接到邮件服务器的默认端口(通常是
25号端口)。
这个连接通常是基于TCP/IP协议建立的。
2. 握手和身份验证:客户端和服务器之间进行握手,并进行身份验证。
这通常需要提供合法的用户名和密码来验证客户端的身份。
3. 发送命令:客户端向服务器发送命令,如HELO(打招呼)、MAIL FROM(发送者)、RCPT TO(接收者)等。
这些命令
通知服务器要执行的操作。
4. 传输邮件内容:客户端将邮件内容发送给服务器。
这包括邮件的标题、正文、附件等。
5. 接收邮件:服务器接收邮件内容,并将其存储在相应的用户邮箱中。
邮件可以在服务器上暂存,直到接收方准备好接收它
们。
6. 关闭连接:传输完成后,客户端发送QUIT命令通知服务器断开连接。
SMTP协议是一个基于文本的协议,它使用简单的命令和响应进行通信。
邮件内容是通过多行文本数据进行传输的。
SMTP 还支持扩展特性,如加密传输(通过TLS或SSL)和身份验证机制(如SMTP-AUTH)。
总之,SMTP协议提供了一种可靠的方式来发送电子邮件,确保邮件能够有效地从发送方传输到接收方。
smtp协议

smtp协议SMTP协议。
SMTP(Simple Mail Transfer Protocol)是用于在网络上发送电子邮件的标准协议。
它是一种文本协议,用于将邮件从发送方传输到接收方的邮件服务器。
SMTP协议通常用于发送邮件,而接收邮件则使用其他协议,比如POP3或IMAP。
SMTP协议的工作原理非常简单,它使用TCP协议的25端口进行通信。
当用户发送一封电子邮件时,邮件客户端(比如Outlook或Thunderbird)会连接到发送方的邮件服务器,并使用SMTP协议将邮件传输到接收方的邮件服务器。
接收方的邮件服务器然后将邮件存储在接收方的邮箱中,等待接收方登录并下载。
在SMTP协议中,邮件传输是通过命令和响应来完成的。
客户端发送命令给服务器,服务器收到命令后会做出响应。
常见的SMTP命令包括HELO(标识发件人的邮件服务器)、MAIL FROM(指定发件人的邮箱地址)、RCPT TO(指定收件人的邮箱地址)、DATA(开始传输邮件数据)、QUIT(结束会话)等。
SMTP协议的安全性一直是人们关注的焦点。
由于SMTP协议最初设计时并未考虑安全性问题,因此存在一些安全隐患,比如邮件劫持、伪造发件人等。
为了解决这些问题,人们提出了一些安全增强的SMTP协议,比如SMTPS(SMTP over SSL)和STARTTLS。
这些协议在原有SMTP协议的基础上增加了加密和认证机制,从而提高了邮件传输的安全性。
除了安全性问题外,SMTP协议还存在一些其他的局限性。
比如,SMTP协议无法处理大文件的邮件传输,因为它不支持分段传输。
此外,SMTP协议也无法处理非文本文件的传输,因为它只能传输文本数据,无法处理二进制数据。
尽管存在这些局限性,SMTP协议仍然是目前最常用的邮件传输协议之一。
它的简单、高效和可靠使得它成为了互联网上邮件传输的主要方式。
随着互联网的发展,SMTP协议也在不断地完善和发展,以适应新的需求和挑战。
SMTP协议分析

SMTP协议分析SMTP(Simple Mail Transfer Protocol)是一种用于电子邮件传输的协议。
它是一种基于文本的协议,用于在网络上传输电子邮件。
SMTP协议定义了电子邮件的传输方式,包括邮件的发送、接收和路由。
SMTP协议的工作原理如下:1. 建立连接:客户端与服务器之间建立TCP连接,默认端口号为25。
2. 发送邮件:客户端向服务器发送邮件,包括发件人、收件人、邮件内容等信息。
3. 服务器验证:服务器验证邮件的发件人和收件人的有效性。
4. 传输邮件:服务器将邮件传输到目标服务器。
5. 接收邮件:目标服务器接收邮件并存储在收件人的邮箱中。
SMTP协议的优点:1. 可靠性:SMTP协议使用TCP连接,确保邮件的可靠传输。
2. 简单性:SMTP协议以文本格式传输,易于实现和调试。
3. 可扩展性:SMTP协议支持扩展,可以添加新的命令和功能。
SMTP协议的缺点:1. 安全性:SMTP协议传输的邮件内容是明文的,容易被窃听和篡改。
2. 垃圾邮件:SMTP协议无法有效地防止垃圾邮件的发送。
SMTP协议的命令和响应:1. HELO/EHLO命令:客户端向服务器打招呼,服务器响应确认。
2. MAIL FROM命令:客户端指定发件人,服务器响应确认。
3. RCPT TO命令:客户端指定收件人,服务器响应确认。
4. DATA命令:客户端发送邮件内容,服务器响应确认。
5. QUIT命令:客户端结束会话,服务器响应确认。
SMTP协议的扩展:1. ESMTP(Extended SMTP):对SMTP协议进行了扩展,支持更多的命令和功能。
2. STARTTLS命令:在SMTP连接上启用TLS加密,提高邮件传输的安全性。
3. SMTPS(SMTP Secure):使用SSL/TLS加密的SMTP协议。
SMTP协议的应用:1. 邮件发送:SMTP协议用于发送邮件,将邮件从发件人的客户端传输到服务器。
2. 邮件路由:SMTP协议用于将邮件从发送服务器传输到目标服务器。
SMTP协议原理

SMTP协议原理SMTP(Simple Mail Transfer Protocol)是一种用于电子邮件传输的协议,它定义了邮件从发件人传递到收件人的传输过程。
本文将介绍SMTP协议的原理和工作过程。
一、SMTP协议简介SMTP协议是应用层协议,用于电子邮件的发送。
它基于TCP/IP协议栈,采用面向连接的方式完成邮件传输。
SMTP协议是互联网上最常用的邮件传输协议之一。
二、SMTP协议的工作过程SMTP协议的工作过程可以简单分为三个步骤:建立连接、传输邮件内容和关闭连接。
1. 建立连接SMTP客户端(通常是邮件客户端软件)首先要与邮件服务器建立连接。
客户端通过向服务器的25端口发送连接请求来建立连接。
服务器收到请求后,返回一个确认应答。
客户端与服务器完成三次握手后,建立起连接。
2. 传输邮件内容建立连接后,客户端通过SMTP命令向服务器发送邮件信息。
常用的SMTP命令包括:HELO(向服务器打招呼)、MAIL FROM(指定发件人地址)、RCPT TO(指定收件人地址)、DATA(传输邮件内容)、QUIT(结束连接)等。
客户端发送邮件内容时,需要按照特定的格式来构造邮件头和邮件体。
邮件头包含发件人、收件人、主题等信息;邮件体包含正文内容。
客户端发送完邮件内容后,通过一个结束符表示邮件内容的结束。
服务器在接收到邮件内容后,会进行验证和处理。
如果一切正常,服务器会将邮件转发给下一个邮件服务器,直到最终送达收件人的邮件服务器。
3. 关闭连接当邮件传输完成后,客户端通过QUIT命令向服务器发送结束连接的请求。
服务器返回一个确认应答,然后关闭连接。
三、SMTP协议的特点和优势1. 可靠性:SMTP协议采用面向连接的方式,保证了邮件的可靠传输。
当连接中断时,客户端可以重新建立连接,并继续传输未完成的邮件。
2. 分层架构:SMTP协议采用分层架构,邮件传输过程中的各个环节都有相应的角色和功能。
这样可以提高系统的模块化程度和可扩展性。
smtp协议

SMTP协议SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是互联网上邮件传输的标准协议。
它定义了电子邮件是如何通过网络发送和接收的规则。
在本文中,我们将详细介绍SMTP协议的工作原理和常见用途。
1. SMTP协议的基本原理SMTP协议是一种客户端-服务器协议,主要用于发送邮件。
它基于TCP/IP协议栈,使用25号端口进行通信。
SMTP协议的基本原理如下:1.客户端连接服务器:客户端应用程序通过建立与邮件服务器的TCP连接,连接到服务器的25号端口。
2.服务器欢迎信息:服务器接受客户端连接后,发送欢迎信息,通知客户端连接成功。
3.客户端身份验证:客户端向服务器发送身份验证信息,以验证自己的身份。
常见的身份验证机制包括登录名和密码的组合。
4.服务器身份验证:服务器接收到客户端的身份验证信息后,进行身份验证。
如果验证成功,服务器将继续处理客户端的请求。
5.邮件发送:客户端向服务器发送邮件内容,包括发件人、收件人、主题和正文等信息。
6.邮件传输:服务器接收到邮件内容后,将其传输到目标邮件服务器。
7.服务器响应:目标邮件服务器接收到邮件后,将发送响应给源邮件服务器,以确认邮件是否成功传输。
8.交互结束:客户端和服务器之间的交互结束后,可以关闭TCP连接。
2. SMTP协议的用途SMTP协议作为电子邮件系统的核心协议,主要用于以下几个方面:•发送邮件: SMTP协议允许用户通过邮件客户端发送电子邮件。
用户只需配置邮件客户端的SMTP服务器地址和端口,即可发送邮件。
•邮件路由: SMTP协议定义了邮件的传输路径,通过邮件服务器之间的交互,将邮件从源邮件服务器传输到目标邮件服务器。
•邮件中继: SMTP协议支持邮件的中继传输。
如果源邮件服务器无法直接将邮件传输到目标邮件服务器,它可以将邮件发送给其他中间邮件服务器,由中间邮件服务器负责将邮件传输到目标邮件服务器。
•反垃圾邮件: SMTP协议可以用于反垃圾邮件的过滤。
SMTP协议电子邮件传输的核心协议

SMTP协议电子邮件传输的核心协议SMTP(Simple Mail Transfer Protocol)是互联网上电子邮件传输的核心协议。
它定义了电子邮件的传输规则,确保电子邮件能够准确无误地从发送方传送到接收方。
本文将探讨SMTP协议的工作原理、数据传输过程以及安全性等方面。
一、SMTP协议简介SMTP协议是一种用于发送邮件的网络协议,它基于TCP/IP协议栈,运行在默认端口25上。
SMTP协议常用于邮件服务器之间的通信,使发送方能够将邮件传递给接收方。
它使用了一种命令/响应模型,通过命令请求和响应数据来传输电子邮件。
二、SMTP协议的工作原理1. 握手阶段:发送方的客户端连接到接收方的服务器,并发送握手命令以建立连接。
2. 认证阶段:发送方需要提供用户名和密码等认证信息,以验证身份。
3. 发送阶段:发送方将电子邮件的信息和内容发送给接收方。
发送方首先发送MAIL FROM命令,指定发件人的地址,然后发送RCPT TO命令,指定收件人的地址。
最后,发送DATA命令,开始发送具体邮件内容。
4. 结束阶段:发送方发送QUIT命令,表示传输结束,并断开与接收方的连接。
三、SMTP协议数据传输过程SMTP协议通过命令/响应模型来传输数据。
发送方发送一个命令到接收方,接收方对命令进行解析并发送相应的响应数据。
1. 命令格式:SMTP协议的命令由英文字母组成,命令和参数之间使用空格进行分隔。
2. 响应格式:SMTP协议的响应由三位数字和一条消息组成,数字代表响应的状态码,消息提供了与状态码相关的详细信息。
四、SMTP协议的安全性SMTP协议最初设计时并没有考虑安全性,因此存在着一些安全隐患。
为了提高电子邮件传输的安全性,SMTP的扩展协议STARTTLS 和SMTPS被引入。
1. STARTTLS:STARTTLS是一种协议扩展,它能够将SMTP协议的普通连接升级为加密连接,确保邮件在传输过程中的安全性。
smtp是什么协议
smtp是什么协议SMTP是什么协议。
SMTP(Simple Mail Transfer Protocol)是一种用于在网络上传输电子邮件的协议,它是互联网上使用最广泛的邮件传输协议之一。
SMTP协议定义了邮件的发送规则和信封格式,它使得邮件服务器能够相互之间传递电子邮件,并最终将邮件投递到接收方的邮箱中。
作为一种基于文本的协议,SMTP使用TCP协议的25号端口进行通信。
它采用简单的命令-响应模式,通过命令和响应的交互来完成邮件的传输过程。
SMTP协议的设计初衷是为了保证邮件的可靠传递,它能够处理一些常见的邮件传输问题,比如重试发送、错误报告等。
在SMTP协议中,邮件的发送过程通常包括以下几个步骤:1. 建立连接,邮件客户端通过TCP连接到邮件服务器的25号端口,建立与服务器的通信通道。
2. 会话协商,客户端和服务器之间进行一系列的会话协商,包括身份验证、邮件发送方和接收方的确认等。
3. 发送邮件,客户端向服务器发送邮件内容和信封信息,包括发件人、收件人、主题、正文等。
4. 服务器处理,服务器接收到邮件后进行一系列的处理,包括检查邮件格式、转发邮件、存储邮件等。
5. 传递邮件,服务器将邮件传递给下一个邮件服务器,直到最终送达接收方的邮箱。
SMTP协议的设计简单而高效,它为电子邮件的可靠传递提供了重要的基础。
然而,SMTP协议也存在一些局限性,比如不能保证邮件的安全性、容易受到垃圾邮件和恶意攻击等。
为了解决这些问题,SMTP协议通常会与其他协议结合使用,比如POP3、IMAP、SMTPS等。
总的来说,SMTP协议作为互联网上邮件传输的基础协议,扮演着非常重要的角色。
它的设计简单而高效,为电子邮件的可靠传递提供了重要的支持。
随着互联网的发展,SMTP协议也在不断地演进和改进,以适应新的需求和挑战。
SMTP协议的发展将继续推动电子邮件系统的进步,为人们提供更加便捷和可靠的邮件传输服务。
电子邮件传输协议
电子邮件传输协议电子邮件传输协议(SMTP)是用于在计算机网络中传输电子邮件的协议。
它是一种简单的文本协议,用于从一个邮件客户端发送邮件到一个邮件服务器,或者从一个邮件服务器发送邮件到另一个邮件服务器。
SMTP是因特网标准协议,它定义了一种用于邮件传输的规范。
SMTP是一个相对简单的协议,它只定义了邮件的传输方式,而不涉及邮件的存储或检索。
SMTP使用TCP协议的25号端口。
SMTP协议的工作流程通常包括以下几个步骤,首先,邮件客户端连接到邮件服务器的25号端口;然后,邮件客户端发送一系列命令来告诉邮件服务器它要发送的邮件的发件人、收件人等信息;接着,邮件服务器验证发件人的身份,并检查收件人的地址是否合法;最后,邮件服务器接受邮件并将它传递给下一个邮件服务器,直到邮件到达最终的目的地。
SMTP协议的一个重要特点是它的可靠性。
SMTP协议使用一种称为“邮件传输代理”的中间件来确保邮件能够被可靠地传输。
如果一个邮件服务器无法直接将邮件传递给目的地,它会将邮件传递给另一个邮件服务器,直到邮件到达目的地为止。
这种机制确保了邮件的可靠传输,即使中间出现了一些故障。
另一个重要的特点是SMTP协议的安全性。
SMTP协议可以使用加密技术来确保邮件的机密性和完整性。
通过使用TLS/SSL等加密协议,SMTP协议可以确保邮件在传输过程中不被窃取或篡改。
这种机制对于商业邮件和个人隐私非常重要。
除了上述的特点之外,SMTP协议还具有一些其他的优点。
首先,它是一个开放的标准,任何人都可以使用它来发送邮件。
其次,它是一个相对简单的协议,容易实现和部署。
最后,它是一个高效的协议,可以在短时间内传输大量的邮件。
总的来说,SMTP协议是一种非常重要的协议,它为电子邮件的传输提供了可靠性和安全性。
它的开放性、简单性和高效性使得它成为了互联网上最常用的邮件传输协议之一。
在未来,随着互联网的发展,SMTP协议将继续发挥着重要的作用,为人们的邮件通信提供便利和保障。
SMTP协议
1.概述SMTP协议SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一种用于电子邮件传输的标准协议。
它定义了一套规则和约定,使得电子邮件能够在网络中进行可靠的传输和交换。
SMTP协议的作用非常重要,是电子邮件系统的核心组成部分。
基本概念SMTP协议基于客户端‑服务器模型,它涉及两个主要角色:邮件的发送者(客户端)和邮件服务器(SMTP服务器)。
发送者使用SMTP协议将邮件发送到服务器,服务器再将邮件转发给接收者的服务器,最终接收者通过合适的协议(如POP3或IMAP)将邮件下载到自己的设备。
作用和重要性SMTP协议的作用是实现电子邮件的可靠传输。
它确保邮件从发送者到接收者的可靠传递,并处理邮件在传输过程中可能遇到的各种情况,如网络故障、服务器繁忙和错误处理等。
SMTP协议的重要性在于它构成了全球范围内电子邮件系统的基础,使得人们可以方便地发送和接收邮件,实现了快速、准确的信息交流。
工作原理简述SMTP协议的工作原理可以简单描述为以下几个步骤:1.客户端与服务器建立连接:客户端使用TCP/IP协议与SMTP 服务器建立连接,通常在25端口进行通信。
2.发送命令和参数:客户端向服务器发送命令,如HELO(或EHLO)、MAIL FROM、RCPT TO等,同时携带相应的参数,指示邮件的发送者、接收者等信息。
3.服务器响应:服务器根据接收到的命令和参数进行相应的处理,并返回响应码和响应信息给客户端,以指示命令的执行结果。
4.传输邮件内容:客户端使用DATA命令通知服务器将要传输邮件内容,然后将邮件的标题、正文和附件等信息发送给服务器。
5.邮件路由和传输:服务器根据邮件的接收者地址进行路由和转发,将邮件传递给下一个服务器,直到最终到达接收者的服务器。
6.交互和断开连接:客户端和服务器之间继续进行交互,直到邮件传输完成。
最后,客户端发送QUIT命令通知服务器断开连接。
SMTP安全协议
SMTP安全协议SMTP(Simple Mail Transfer Protocol)是用于电子邮件传输的标准协议。
然而,由于其通信内容通常以明文形式传输,SMTP协议存在一些安全风险。
为了保护电子邮件的机密性和完整性,我们需要使用SMTP安全协议。
本文将介绍SMTP安全协议的原理、功能和应用。
一、SMTP安全协议简介SMTP安全协议是在传统SMTP协议上增加的一种安全机制,用于保护电子邮件的安全。
它主要包括两种协议:SMTPS(SMTP Secure)和STARTTLS。
SMTPS是通过对传输层协议(如SSL或TLS)进行封装来实现加密传输和身份验证。
STARTTLS则在SMTP协议的基础上添加了STARTTLS命令,用于协商客户端和服务器之间的加密和身份验证方式。
二、SMTP安全协议的工作原理1. SMTPS工作原理SMTPS使用SSL或TLS协议对SMTP协议进行封装,实现数据的加密传输和身份验证。
具体工作流程如下:a. 客户端与服务器之间建立连接。
b. 客户端向服务器发送加密连接请求。
c. 服务器验证客户端的身份,并提供数字证书。
d. 客户端验证服务器的身份,并使用服务器的公钥对对称密钥进行加密。
e. 客户端和服务器使用对称密钥对邮件进行加密传输。
2. STARTTLS工作原理STARTTLS在SMTP协议的基础上添加了STARTTLS命令,用于在客户端和服务器之间协商加密和身份验证方式。
具体工作流程如下:a. 客户端与服务器之间建立连接。
b. 客户端向服务器发送STARTTLS命令。
c. 服务器回应STARTTLS响应,并提供数字证书。
d. 客户端验证服务器的身份,并使用服务器的公钥对对称密钥进行加密。
e. 客户端和服务器使用对称密钥对邮件进行加密传输。
三、SMTP安全协议的功能和应用1. 数据加密传输SMTP安全协议可以使用SSL或TLS协议对邮件进行加密传输,确保邮件在传输过程中不会被窃取和篡改。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SMTP协议RFC文档中文版RFC821 简单邮件传输协议(SMTP)(RFC821 SIMPLE MAIL TRANSFER PROTOCOL) 目录1. 介绍 22. SMTP模型 33. SMTP过程 43.1. MAIL 43.2. 转发53.3. 确认和扩展 63.4. 发送信件(mailing)和获得信件(sending) 73.5. 打开和关闭73.6. 转发83.7. 域93.8. 改变角色94. SMTP说明94.1. SMTP命令94.1.1. 命令语法94.1.2. COMMAND语法格式134.2. SMTP响应154.3. 命令和应答序列164.4. 状态图174.5. 详细内容184.5.1. 最小实现184.5.2. 透明性194.5.3. 大小19附录 A TCP传输服务19附录 B NCP传输服务20附录 C NITS 20附录 D X.25传输服务20附录 E 应答码构成方法20附录 F 一些例子22参考资料361. 介绍简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。
附录A,B,C和D描述了不同传送服务下SMTP的使用。
在名词表中还定义了本文档中使用的术语。
SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。
理解到传送系统(或IPCE)不是一对一的是很重要的。
进程可能直接和其它进程通过已知的IPCE通信。
邮件是一个应用程序或进程间通信。
邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。
更特别的是,邮件可以通过不同网络上的主机接力式传送。
2. SMTP模型SMTP设计基于以下通信模型:针对用户的邮件请求,发送SMTP建立与接收SMTP之间建立一个双向传送通道。
接收SMTP可以是最终接收者也可以是中间传送者。
SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方面传送。
一旦传送通道建立,SMTP发送者发送MAIL命令指明邮件发送者。
如果SMTP接收者可以接收邮件则返回OK应答。
SMTP发送者再发出RCPT 命令确认邮件是否接收到。
如果SMTP接收者接收,则返回OK应答;如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此重复多次。
当接收者收到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回OK应答。
SMTP提供传送邮件的机制,如果接收方与发送方连接在同一个传送服务下时,邮件可以直接由发送方主机传送到接收方主机;或者,当两者不在同一个传送服务下时,通过中继SMTP服务器传送。
为了能够对SMTP服务器提供中继能力,它必须拥有最终目的主机地址和邮箱名称。
MAIL命令参数是回复路径,它指定邮件从何处来;而RCPT命令的参数是转发路径的,它指定邮件向何处去。
向前路径是源路径,而回复路径是返回路径(它用于发生错误时返回邮件)。
当同一个消息要发往不同的接收者时,SMTP遇到了向不同接收者发送同一份数据的复制品的问题,邮件命令和应答有一个比较奇怪的语法,应答也有一个数字代码。
在下面,例子中可以看到哪些使用实际的命令和应答。
完整的命令和应答在第四节。
命令与应答对大小写不敏感,也就是说,命令和应答可以是大写,小写或两者的混合,但这一点对用户邮件名称却不一定是对的,因为有的主机对用户名大小写是敏感的。
这样SMTP实现中就将用户邮箱名称保留成初始时的样子,主机名称对大小写不敏感。
命令与应答由ASCII字母表组成,当传送服务提供8位字节传送通道,每7位字符正确传送,而最高位被填充为0。
当指定一般的命令或应答格式后,参数会由一些类似于语言的字符串表示出来,如"<string>"或"<reverse-path>",这里尖括号表示这是一种类似于语言的变量。
3. SMTP过程本节提供了SMTP中的一些过程。
头一个说明的是基本发送过程(定义为发送操作)。
下来描述向前传送邮件,确认邮箱名称和扩展邮件列表,发送到终端和打开关闭交换。
在本节的最后是对中断,邮件域的说明。
本节的例子只是一部分命令和应答的序列,完整的例子见附录F。
3.1. MAIL在SMTP发送操作中有三步,操作由MAIL命令开始给出发送者标识。
一系列或更多的RCPT命令紧跟其后,给出了接收者信息,然后是DATA命令列出发送的邮件内容,最后邮件内容指示符确认操作。
过程中的第一步是MAIL命令,< reverse-path >包括源邮箱。
MAIL <SP> FROM:<reverse-path> <CRLF>此命令告诉接收者新的发送操作已经开始,请复位所有状态表和缓冲区。
它给出反向路径以进行错误信息返回。
如果请求被接收,接收方返回一个250 OK应答。
<reverse-path>中不止包括了邮箱,它包括了主机和源邮箱的反向路由,其中的第一个主机就是发送此命令的主机。
过程中的第二步是发送RCPT命令。
RCPT <SP> TO:<forward-path> <CRLF>此命令给出向前路径标识接收者,如果命令被接收,接收方返回一个250 OK应答,并存储向前路径。
如果接收者未知,接收方会返回一个550 Failure应答。
此过程可能会重复若干次。
<forward-path>不仅包括邮件,它是主机和目的邮箱的路由表,在其中的第一个主机就是接收命令的主机。
过程中的第三步是发送DATA命令。
DATA <CRLF>如果命令被接收,接收方返回一个354 Intermediate应答,并认定以下的各行都是信件内容。
当信件结尾收到并存储后,接收者发送一个250 OK应答。
因为邮件是在传送通道上发送,因此必须指明邮件内容结尾,以便应答对话可以重新开始。
SMTP通过在最后一行仅发送一个句号来表示邮件内容的结束,在接收方,一个对用户透明的过程将此符号过滤掉,以不影响正常的数据。
注意:邮件内容包括如下提示:Date, Subject, To, Cc, From。
邮件内容指示符确认邮件操作并告知接收者可以存储和再发送数据了。
如果此命令被接收,接收方返回一个250 OK应答。
DATA命令仅在邮件操作未完成或源无效的情况下失败。
上面所述的过程是一个发送操作。
这些命令只能以上面的顺序使用。
下例表示了在一个发送操作中这些命令的使用。
SMTP过程例子此例是在Alpha.ARPA主机的Smith发送邮件给Beta.ARPA主机的Jones,Green和Brown的,这里假定主机Alpha与主机Beta直接相连。
S: MAIL FROM:<Smith@Alpha.ARPA>R: 250 OKS: RCPT TO:<Jones@Beta.ARPA>R: 250 OKS: RCPT TO:<Green@Beta.ARPA>R: 550 No such user hereS: RCPT TO:<Brown@Beta.ARPA>R: 250 OKS: DATAR: 354 Start mail input; end with <CRLF>.<CRLF>S: Blah blah blah...S: ...等等S: <CRLF>.<CRLF>R: 250 OK此信被前两个人接收,而第三个人在此主机上没有邮箱。
3.2. 转发下面是一些<forward-path>中目的地址不正确的,但接收者知道正确的目的地址的例子。
在这些例子中,下列应答之一应该允许发送方与获得正确地址。
251:用户不在本地;将向前发送到<forward-path>。
这个应答意味着,接收方SMTP知道用户的邮箱在另外的主机上,而且意味着将在未来使用正确的转向路径。
请注意,主机或者用户,或者它们两者是不同的。
接收方负责传送消息。
551 :用户非本地,请尝试<forward-path>这个应答意味着接收SMTP知道用户的邮箱在另外的主机上,并意味着使用了正确的转发路径。
注意请注意,主机或者用户,或者它们两者是不同的。
接收方拒绝接收此用户的信件,发送者必须根据提供的信息重新发送或者向原发送者返回错误信息。
下例显示了这些响应的应用。
转发的例子S: RCPT TO:<Postel@USC-ISI.ARPA>R: 251 User not local; will forward to <Postel@USC-ISIF.ARPA>或者S: RCPT TO:<Paul@USC-ISIB.ARPA>R: 551 User not local; please try <Mockapetris@USC-ISIF.ARPA>3.3. 确认和扩展SMTP提供了另外的确认用户名和扩展邮件列表的功能。
这些功能由VREF和EXPN命令完成,它们都以字符串为参数。
对于VREF命令,字符串参数指的是用户名,对此命令的响应要包括用户的命名和用户的邮箱。
对于EXPN命令,字符串参数指的是邮件列表,对此命令的响应多于一个,它们要包括所有列表中用户的命名和他们的邮箱。
“用户名”是一个多余的项目,它是故意被加上的。
如果主机采用VREF命令和EXPN命令,最后本地邮箱必须提供用户名使它被主机确认。
如果主机选择由另外的字符串作为用户名,也是允许的。
在一些主机中,邮箱列表和一个邮箱的代名有一点不清楚,因为一般的数据结构可能包括两种类型的入口。
如果要发出对邮件列表的确认,应该给出确定响应。
在接收到这个消息后,主机将把邮件传送到列表上所有的地址上去,如果没有接收到确定响应,就会报告错误。
例如,"550 That is a mail list, not a user name"。
如果请求用于扩展一个用户名,可能通过返回包括一个名字的列表来形成确定响应,如果没有接收到确定响应,就会报告错误。
(例如,"550 That is a user name, not a mailing list")。
在多个响应的情况下(通常是对于EXPN而言的),每个应答指定一个邮箱。
在模糊请求的情况下,例如"VRFY Smith",这里两个Smith的响应必须是"553 User ambiguous"。
确认用户名的情况如下例所示:例3:确认用户名S: VRFY Smith R: 250 Fred Smith <Smith@USC-ISIF.ARPA>或者S: VRFY SmithR: 251 User not local; will forward to <Smith@USC-ISIQ.ARPA>或者S: VRFY JonesR: 550 String does not match anything.或者S: VRFY JonesR: 551 User not local; please try <Jones@USC-ISIQ.ARPA>或者S: VRFY GourzenkyinplatzR: 553 User ambiguous.邮箱列表要求多个响应的情况如下例所示:S: EXPN Example-PeopleR: 250-Jon Postel <Postel@USC-ISIF.ARPA>R: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA>R: 250-Sam Q. Smith <SQSmith@USC-ISIQ.ARPA>R: 250-Quincy Smith <@USC-ISIF.ARPA:Q-Smith@ISI-VAXA.ARPA>R: 250-<joe@foo-unix.ARPA>R: 250 <xyz@bar-unix.ARPA>或者S: EXPN Executive-Washroom-ListR: 550 Access Denied to You.VERF和EXPN命令的字符串命令参数因为具体实现的不同而不能再加以限制了。