`
jimmy.shine
  • 浏览: 392943 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SMTP协议的命令和应答

    博客分类:
  • Mail
阅读更多
从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的。在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响。双方如此反复多次,直至邮件处理完毕。SMTP协议共包含10个SMTP命令,列表如下:
SMTP命令命令说明
HELLO<domain><CRLF>识别发送方到接收SMTP的一个HELLO命令
MAILFROM:<reverse-path><CRLF><reverse-path>为发送者地址。此命令告诉接收方一个新邮件发送的开始,并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理,最终完成将邮件数据传送到一个或多个邮箱中。
RCPTTO:<forward-path><CRLF><forward-path>标识各个邮件接收者的地址
DATA<CRLF>
接收SMTP将把其后的行为看作邮件数据去处理,以<CRLF>.<CRLF>标识数据的结尾。
REST<CRLF>退出/复位当前的邮件传输
NOOP<CRLF>要求接收SMTP仅做OK应答。(用于测试)
QUIT<CRLF>要求接收SMTP返回一个OK应答并关闭传输。
VRFY<string><CRLF>验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令。
EXPN<string><CRLF>验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用。
HELP<CRLF>查询服务器支持什么命令
注:<CRLF>为回车、换行,ASCII码分别为13、10(十进制)。
  SMTP协议的每一个命令都会返回一个应答码,应答码的每一个数字都是有特定含义的,如第一位数字为2时表示命令成功;为5表失败;3表没有完成。一些较复杂的邮件程序利用该特点,首先检查应答码的首数字,并根据其值来决定下一步的动作。下面将SMTP的应答码列表如下:
应答码说明
501参数格式错误
502命令不可实现
503错误的命令序列
504命令参数不可实现
211系统状态或系统帮助响应
214帮助信息
220<domain>服务就绪
221<domain>服务关闭
421<domain>服务未就绪,关闭传输信道
250要求的邮件操作完成
251用户非本地,将转发向<forward-path>
450要求的邮件操作未完成,邮箱不可用
550要求的邮件操作未完成,邮箱不可用
451放弃要求的操作;处理过程中出错
551用户非本地,请尝试<forward-path>
452系统存储不足,要求的操作未执行
552过量的存储分配,要求的操作未执行
553邮箱名不可用,要求的操作未执行
354开始邮件输入,以"."结束
554操作失败
分享到:
评论

相关推荐

    易语言Smtp协议应答机制

    总之,易语言Smtp协议应答机制源码实现了一个完整的SMTP客户端功能,它能与SMTP服务器通信,发送和接收邮件,处理各种协议应答,确保邮件传输的顺利进行。这个过程涉及到了网络通信、编码转换、错误处理等多个方面的...

    SMTP协议电子邮件传送剖析

    SMTP协议定义了一系列命令和应答码,用于指导邮件的发送过程: - **HELLO**:发送方通知接收方其域名,用于建立会话。 - **MAIL FROM:**:指明邮件的发件人。 - **RCPT TO:**:指明邮件的收件人。 - **DATA**:标志...

    Smtp协议应答机制.rar

    总之,SMTP协议应答机制是电子邮件系统中的核心组成部分,理解和掌握其工作原理对于网络编程,尤其是涉及邮件处理的应用开发至关重要。通过研究易语言源码,我们可以深入学习这一过程,提高编程技能。

    VC++_SMTP协议电子邮件传送剖析

    #### SMTP协议命令与应答 SMTP协议定义了多个命令,以控制邮件的发送过程。下面是几个关键的SMTP命令及其功能描述: - **HELO**:发送SMTP向接收SMTP发送的初始命令,用于识别发送方的身份。 - **MAIL FROM:**:...

    C++ SMTP协议发送邮件模块(支持身份验证)

    1. `SMTPClient`类:封装了SMTP协议的实现,包含构造函数、连接服务器、发送命令、身份验证、发送邮件和断开连接等方法。 2. 身份验证方法:如`authenticate`,可能根据不同的认证类型(如PLAIN或LOGIN)执行相应的...

    SMTP协议RFC文档中文版-01a7b6a3d9ef5ef7ba0d4a7302768e9951e76ed4.pdf

    SMTP 命令由发送 SMTP 发出,由接收 SMTP 接收,而应答则反方面传送。 SMTP 命令 SMTP 命令由发送 SMTP 发出,由接收 SMTP 接收。常见的 SMTP 命令包括: * MAIL 命令:指定邮件的发送者和接收者。 * RCPT 命令:...

    利用SMTP协议收发邮件.pdf

    3. **SMTP协议的命令和应答** SMTP协议包括一系列命令,如HELO(Hello)、EHLO(Extended Hello)、MAIL(指定发件人)、RCPT(指定收件人)、DATA(传输邮件内容)和QUIT(结束会话)。每个命令都有对应的应答,以...

    RFC821-简单邮件传输协议(SMTP)中文版

    为了适应新的需求和技术发展,SMTP协议也在不断地演进和改进,例如支持国际化邮件地址、增加对大附件的支持等。同时,随着云计算和大数据的发展,未来的SMTP服务可能会更加智能化和个性化,以提供更高效、安全的邮件...

    VC++ SMTP协议电子邮件传送剖析

    开发者需要创建套接字,连接到SMTP服务器,然后按照SMTP协议的步骤发送一系列命令。 以下是一些关键的实现步骤: 1. 初始化Winsock库,确保网络通信功能可用。 2. 创建一个TCP套接字,使用`socket()`函数,并与...

    SMTP和POP3协议中文版

    【SMTP协议】 简单邮件传输协议(SMTP)是互联网上用于发送电子邮件的标准协议,定义在RFC821文档中。SMTP的主要目标是高效、可靠地传递邮件,它不依赖特定的传输子系统,只要求能够保证数据单元顺序的通道。SMTP...

    网络协议分析文档教程-【简单邮件传输协议SMTP 分析】.pdf

    在实验环境中,为了进行SMTP协议的学习和分析,通常需要配置好可用的电子邮件账户,并安装支持SMTP和POP3协议的邮件客户端软件,如Outlook Express。实验者可以通过该软件发送邮件,并捕获数据包进行分析,以理解...

    Smtp协议应答机制易语言源码-易语言

    在易语言环境中,实现SMTP协议的应答机制意味着编写代码来模拟这个通信流程,以便用户能够通过易语言程序发送邮件。下面将详细解释SMTP协议的基本概念、应答机制以及易语言源码中的关键部分。 首先,SMTP协议基于...

    基于SMTP协议电子邮件收发系统的设计

    SMTP协议定义了一系列命令和相应的应答码,用于实现邮件的发送流程。例如: - `HELO`:用于标识发送方的身份。 - `MAIL FROM`:指定邮件的发件人。 - `RCPT TO`:指定邮件的收件人。 - `DATA`:指示开始发送邮件...

    用C语言设计电子邮件系统.doc

    SMTP协议包括命令和应答两部分,命令用于发送邮件,应答用于确认邮件的传输。 9. SMTP 协议的命令和应答 SMTP协议的命令包括HELO、MAIL、RCPT和DATA等,用于发送邮件。SMTP协议的应答包括OK和ERROR等,用于确认...

    SMTP标准中文翻译

    SMTP协议允许在不同的传输服务环境中使用,如TCP、NCP和NITSX.25等。附录A至D提供了在这些不同环境下的SMTP应用指南。 SMTP的一个关键特性是它的接力传输功能,邮件可以在多个网络或网络子网中的进程间传递,通过...

    易语言-Smtp协议应答机制易语言

    通过深入理解和实践易语言中的SMTP协议应答机制,不仅可以了解电子邮件的发送流程,还能提升网络编程技能,为今后开发更复杂的网络应用打下基础。同时,这也有助于理解SMTP协议的底层原理,为解决实际问题提供思路。

    毕设项目:基于cs的电子邮件简单收发系统设计与实现(ASP.NET+源代码+论文)

    2.3.2 POP3的命令和应答 6 3 系统需求分析 7 3.1 功能需求 7 3.1.1 邮件发送需求 8 3.1.2 邮件接收需求 8 3.1.3 附加功能需求 8 3.2 研究思路 8 3.2.1 用户注册块 8 3.2.2 邮件发送块 8 3.2.3 邮件接收块 8 3.2.4 ...

    邮件系统--(毕业设计)

    3.2 SMTP协议的命令和应答 6 3.2.1 SMTP协议的命令 6 4 RFC822 14 4.1 RFC822简单介绍 14 4.2 信件的头部 14 5 命名控件MailSend 20 5.1 发送邮件类SmtpMail 20 5.2 AddExtra类 27 5.2.1 调用Windows API ...

Global site tag (gtag.js) - Google Analytics