SMTP协议RFC文档中文版
SMTP协议RFC文档中文版

RFC821简单邮件传输协议(SMTP)(RFC821 SIMPLE MAIL TRANSF ER PROTOC OL)目录1. 介绍 22. SMTP模型 33. SMTP过程 43.1. MAIL 43.2. 转发 53.3. 确认和扩展 63.4. 发送信件(mailin g)和获得信件(sendin g) 7 3.5. 打开和关闭73.6. 转发 83.7. 域93.8. 改变角色94. SMTP说明94.1. SMTP命令94.1.1. 命令语法94.1.2. COMMAN D语法格式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描述了不同传送服务下SMT P的使用。
在名词表中还定义了本文档中使用的术语。
SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。
理解到传送系统(或IPCE)不是一对一的是很重要的。
进程可能直接和其它进程通过已知的IPCE通信。
邮件是一个应用程序或进程间通信。
邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。
更特别的是,邮件可以通过不同网络上的主机接力式传送。
2. SMTP模型SMTP设计基于以下通信模型:针对用户的邮件请求,发送SMTP建立与接收SMTP之间建立一个双向传送通道。
smtp协议rfc文档中文版

RFC821 简单邮件传输协议(SMTP)(RFC821 SIMPLE MAIL TRANSFER PROTOCOL)目录1. 介绍22. SMTP模型33. SMTP过程43.1. MAIL43.2. 转发53.3. 确认和扩展63.4. 发送信件(mailing)和获得信件(sending)7 3.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 NITS20附录 D X.25传输服务20附录 E 应答码构成方法20附录 F 一些例子22参考资料361. 介绍简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。
附录A,B,C和D描述了不同传送服务下SMTP的使用。
在名词表中还定义了本文档中使用的术语。
SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。
理解到传送系统(或IPCE)不是一对一的是很重要的。
进程可能直接和其它进程通过已知的IPCE通信。
邮件是一个应用程序或进程间通信。
邮件可以通过连接在不同IP CE上的进程跨网络进行邮件传送。
更特别的是,邮件可以通过不同网络上的主机接力式传送。
2. SMTP模型SMTP设计基于以下通信模型:针对用户的邮件请求,发送SMTP建立与接收SMTP之间建立一个双向传送通道。
接收SMTP可以是最终接收者也可以是中间传送者。
SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方面传送。
RFC2554

S: 235 Authentication successful.
5. 对应MAIL from 命令的AUTH参数
AUTH=addr-spec
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
认证协商成功后的第一个命令。
服务器并不被要求一定支持任何特定的认证机制,同样认证机制要不要求必须支
持某种安全层。
一旦一个AUTH命令失败,客户端可以通过发出另外一个AUTH命令来尝试其
他一种认证机制。
一旦一个AUTH命令失败,服务器端的行为就好象客户端从没有发出那次AUTH
(5) 关键词AUTH被用做一个可选的参数被加入MAIL FORM 命令中并把MAIL FROM
命令行的的最大长度扩展到500个ansi字符。
(6) 此扩展和委托协议兼容(the submission protocol [SUBMIT])。
4. AUTH命令
返的回程,认证机制的定义中此建议不发送任何数据。当初始化响应部分用在这种机制时,
开始的空的发起命令不被送到客户端,并且服务器端使用的数据也好象是发送来
响应一个空的命令。它发送一个零长度的初始化回答作为一个"="符号。如果客户端
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协议RFC文档中文版

SMTP协议RFC文档中文版
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是Internet上电子邮件的标准协议。
它使用TCP/IP协议将电子邮件从发送者传送到接收者。
它是客户端-服务器协议,也就是说,客户端提交一个电子邮件,服务器在执行操作时处理这个提交的邮件(它可以拒绝接受这个邮件)。
SMTP在不断变化,更新和改进。
早期的SMTP仅用于传输文本文件,但是随着时代的发展和技术的进步,SMTP现在可以用于传输任何格式的文件,包括图像,声音和视频文件。
同时,SMTP协议也发展成一系列分支协议,如MIME(多用途Internet邮件扩展),以及SMTPR(简化管理和维护邮件系统)等等。
SMTP协议的基本功能是使用TCP/IP协议来传输电子邮件。
它可以在发件人和收件人之间建立一个双向的信息传输链路,并且可以实现简单的邮件消息的传输。
它可以确保发件人和收件人之间的邮件传输可靠、有序和安全。
SMTP是一种可靠的协议。
学习网络常用的RFC文档的名称

学习网络常用的RFC文档的名称双语RFC --RFC中英文对照版rfc1050中文版-远程过程调用协议规范rfc1055中文版-在串行线路上传输IP数据报的非标准协议rfc1057中文版-RFC:远程过程调用协议说明第二版rfc1058中文版-路由信息协议(Routing Information Protocol)rfc1073中文版-RFC1073 Telnet窗口尺寸选项rfc1075中文版-远距离矢量多播选路协议rfc1088中文版-在NetBIOS网络上传输IP数据报的标准rfc1090中文版-SMTP在X.25上rfc1091中文版-TELNET终端类型选项rfc1094中文版-RFC1094 网络文件系统协议rfc1096中文版-Telnet X显示定位选项rfc1097中文版-Telnet潜意识-信息选项rfc1112中文版-主机扩展用于IP多点传送rfc1113中文版-Internet电子邮件保密增强:Part1-消息编码和鉴别过程rfc1132中文版-802.2分组在IPX网络上传输的标准rfc1144中文版-低速串行链路上的TCP/IP头部压缩rfc1155中文版-基于TCP/IP网络的管理结构和标记rfc1191中文版-RFC1191 路径MTU发现rfc1332中文版-RFC1332 端对端协议网间协议控制协议(IPCP)rfc1333中文版-PPP 链路质量监控rfc1334中文版-PPP 身份验证协议rfc1387中文版-RIP(版本2)协议分析rfc1388中文版-RIP协议版本2rfc1433中文版-直接ARPrfc1445中文版-SNMPv2的管理模型rfc1582中文版-扩展RIP以支持按需链路rfc1618中文版-ISDN上的PPP(点对点)协议rfc1661中文版-RFC1661 PPP协议rfc1723中文版-路由信息协议(版本2)rfc1738中文版-统一资源定位器(URL)rfc1769中文版-简单网络时间协议( SNTP)rfc1771中文版-边界网关协议版本4(BGP-4)rfc1827中文版-IP封装安全载荷(ESP)rfc1883中文版-Internet协议,版本6(IPv6)说明书rfc1939中文版-POP3协议rfc1945中文版-超文本传输协议 -- HTTP/1.0rfc1994中文版-PPP挑战握手认证协议(CHAP)rfc1997中文版-RFC1997 BGP团体属性rfc2002中文版-IP移动性支持rfc204中文版-利用报路rfc2105中文版-Cisco 系统的标签交换体系结构纵览rfc2281中文版-Cisco热备份路由协议()rfc2283中文版-BGP-4的多协议扩展rfc2326中文版-实时流协议(RTSP)rfc2328中文版-OSPF版本2rfc2516中文版-在以太网上传输PPP的方法(PPPoE)rfc2526中文版-IPv6保留的子网任意传送地址rfc2547中文版-BGP/MPLS VPNsrfc2616中文版-超文本传输协议——HTTP/1.1rfc2702中文版-基于MPLS的流量工程要求rfc2706中文版-RFC2706—电子商务域名标准rfc2756中文版-超文本缓存协议(HTCP/0.0)rfc2764中文版-IP VPN的框架体系rfc2773中文版-使用KEA和SKIPJACK加密rfc2774中文版-HTTP扩展框架rfc2781中文版-UTF-16, 一种ISO 10646的编码方式rfc2784中文版-通用路由封装rfc2793中文版-用于文本交谈的RTP负载rfc2796中文版-BGP路由反射rfc2917中文版-核心 MPLSIP VPN 体系结构rfc2918中文版-BGP-4(边界网关协议)的路由刷新功能rfc2923中文版-TCP的路径MTU发现问题rfc3003中文版-Audio/mpeg 媒体类型rfc3005中文版-IETF 讨论列表许可证rfc3007中文版-安全的域名系统动态更新rfc3018中文版-统一内存空间协议规范rfc3022中文版-传统IP网络地址转换(传统NAT)rfc3032中文版-RFC3032 MPLS标记栈编码rfc3033中文版-用于Internet协议的信息域和协议标识符在Q.2941类属标识符和Q.2957 User-to-user信令中的分配rfc3034中文版-标签转换在帧中继网络说明书中的使用rfc3037中文版-RFC3037 标记分配协议的适用范围(RFC3037 LDP Applicability)rfc3058中文版-IDEA加密算法在CMS上的使用rfc3059中文版-服务定位协议的属性列表扩展rfc3061中文版-对象标识符的一种URN姓名空间rfc3062中文版-LDAP口令修改扩展操作rfc3063中文版-MPLS(多协议标签交换)环路预防机制rfc3066中文版-语言鉴定标签rfc3067中文版-事件对象描述和转换格式要求rfc3069中文版-VLAN聚合实现IP地址有效分配rfc3070中文版-基于帧中继的第二层隧道协议rfc3072中文版-结构化数据交换格式rfc3074中文版-DHCP 负载平衡算法rfc3078中文版-RFC3078微软点到点加密(MPPE)协议rfc3081中文版-将区块扩展交换协议(BEEP)核心映射到传输控制协议(TCP)rfc3083中文版-遵循DOCSIS的Cable Modem和CMTS的PBI 的管理信息数据库rfc3085中文版-新闻型标记语言(NewsML)资源的URN名字空间rfc3090中文版-域名系统在区域状况下的安全扩展声明rfc3091中文版-Pi数字生成协议rfc3093中文版-防火墙增强协议rfc3550中文版-RTP:实时应用程序传输协议rfc457中文版-TIPUGrfc697中文版-FTP的CWD命令rfc698中文版-TELNET扩展ASCII选项rfc775中文版-面向目录的 FTP 命令rfc779中文版-TELNET的SEND-LOCATION选项rfc792中文版-RFC792- Internet控制信息协议(ICMP)rfc821中文版-RFC821 简单邮件传输协议(SMTP)rfc826中文版-以太网地址转换协议或转换网络协议地址为48比特以太网地址用于在以太网硬件上传输rfc854中文版-TELNET协议规范rfc855中文版-TELNET选项规范rfc856中文版-RFC856 TELNET二进制传输rfc857中文版-RFC 857 TELNET ECHO选项rfc858中文版-RFC 858 TELNET SUPPRESS GO AHEAD选项rfc859中文版-RFC 859 TELNET的STATUS选项rfc860中文版-RFC 860 TELNET TIMING MARK选项rfc861中文版-RFC 861 TELNET扩展选项-LISTrfc862中文版-RFC 862 Echo 协议rfc868中文版-RFC868 时间协议rfc894中文版-IP 数据包通过以太网网络传输标准rfc903中文版-反向地址转换协议rfc930中文版-Telnet终端类型选项(RFC930——T elnet Terminal Type Option)rfc932中文版-子网地址分配方案rfc937中文版-邮局协议 (版本2)rfc948中文版-IP数据报通过IEEE802.3网络传输的两种方法rfc949中文版-FTP 未公开的独特命令rfc951中文版-引导协议(BOOTP)rfc962中文版-TCP-4 的最初rfc974中文版-邮件路由与域名系统rfc975中文版-自治联邦。
应用层(SMTP和POP3协议)

应⽤层(SMTP和POP3协议)SMTP(简单邮件传输协议 Simple Mail Transfer Protocol)是建⽴在FTP⽂件传输服务上的⼀种邮件服务,主要⽤于传输系统之间的邮件信息并提供与来信有关的通知,所对应RFC⽂档为RFC821。
SMTP⽬前已是事实上的在Internet传输E-Mail的标准,是⼀个相对简单的基于⽂本的协议,⽬标是向⽤户提供⾼效、可靠地邮件传输。
它的⼀个重要特点是它能够在传送中接⼒传送邮件。
邮件是⼀种消息的格式,由信封、⾸部和正⽂组成。
信封上最重要的是收信⼈的地址。
邮件服务器⽤这个地址将邮件发送到收信⼈所在的邮件服务器上。
⾸部是由⽤户代理或邮件服务器添加的⼀些信息。
包括Received、Message-ID、From、Data、Reply-To、X-Phone、X-Mailer、To和Subject等字段。
正⽂是发送⽤户发给接收⽤户报⽂的内容。
RFC 822规定正⽂为NVT ASCII⽂字⾏。
⼀个具体的SMTP通信(如发送端邮件服务器:即客户端;与接收端服务器:即服务器端的通信)的过程是:1、客户端与服务器端建⽴TCP连接;2、客户端向服务器端发送HELO命令以标识发件⼈⾃⼰的⾝份,然后客户端发送MAIL命令,服务器端以OK响应,表明准备接收;3、客户端发送RCPT命令,以标识该电⼦邮件的计划接收⼈,服务器端则表⽰是否愿意接收邮件;4、协商结束,发送邮件,⽤命令DATA发送;5、以“.”标识结束输⼊内容⼀起发送出去没结束此次发送,⽤QUIT命令退出。
再输⼊每条命令后,都需要加上<CRLF>命令,即换⾏命令。
SMTP协议原来只能传送7位的ASCII码,不能传送⼆进制⽂件,这成了它的⼀⼤缺陷。
在之后的发展中,标准化组织在兼容SMTP的前提下,提出了传送⾮7位ASCII码的⽅法,对应的RFC⽂档有两个:邮件⾸部扩充对应于RFC1522,邮件正⽂的扩充对应与RFC1521(即MIME)。
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命令通知服务器断开连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RFC821 简单邮件传输协议(SMTP)(RFC821 SIMPLE MAIL TRANSFER PROTOCOL)目录1. 介绍 22. SMTP模型 33. SMTP过程 43.1. MAIL 43.2. 转发 53.3. 确认和扩展 63.4. 发送信件(mailing)和获得信件(sending) 7 3.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:MAILFROM:<****************>R: 250 OKS:RCPTTO:<***************>R: 250 OKS:RCPTTO:<***************>R: 550 No such user hereS:RCPTTO:<***************>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:RCPTTO:<*******************>R:251Usernotlocal;willforwardto<********************>或者S:RCPTTO:<******************>R:551Usernotlocal;pleasetry<*************************>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:VRFYSmithR:250FredSmith<*******************>或者S: VRFY SmithR:251Usernotlocal;willforwardto<*******************>或者S: VRFY JonesR: 550 String does not match anything.或者S: VRFY JonesR:551Usernotlocal;pleasetry<*******************>或者S: VRFY GourzenkyinplatzR: 553 User ambiguous.邮箱列表要求多个响应的情况如下例所示:S: EXPN Example-PeopleR:250-JonPostel<********************>R:250-FredFonebone<**********************>R:250-SamQ.Smith<*********************>R:250-QuincySmith<@USC-ISIF.ARPA:*********************>R:250-<*****************>R:250<*****************>或者S: EXPN Executive-Washroom-ListR: 550 Access Denied to You.VERF和EXPN命令的字符串命令参数因为具体实现的不同而不能再加以限制了。