分类:
HELO
MAIL FROM:
RCPT TO:
DATA
RSET
SEND FROM:
SOML FROM:
SAML FROM:
VRFY
EXPN
HELP [ ]
NOOP
QUIT
TURN
其中使得SMTP工作的基本的命令有7个,分别为:HELO﹑MAIL﹑RCPT﹑DATA﹑REST﹑NOOP和QUIT.下面分别介绍如下。
HELO--发件方问候收件方,后面是发件人的服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表明两台机器可以进行通信,同时状态参量被复位,缓冲区被清空。
MAIL--这个命令用来开始传送邮件,它的后面跟随发件方邮件地址(返回邮件地址)。它也用来当邮件无法送达时,发送失败通知。为保证邮件的成功发送,发件方的地址应是被对方或中间转发方同意接受的。这个命令会清空有关的缓冲区,为新的邮件做准备。
RCPT --这个命令告诉收件方收件人的邮箱。当有多个收件人时,需要多次使用该命令,每次只能指明一个人。如果接收方服务器不同意转发这个地址的邮件,它必须报550错误代码通知发件方。如果服务器同意转发,它要更改邮件发送路径,把最开始的目的地(该服务器)换成下一个服务器。
DATA--收件方把该命令之后的数据作为发送的数据。数据被加入数据缓冲区中,以单独一行是"."的行结束数据。结束行对于接收方同时意味立即开始缓冲区内的数据传送,传送结束后清空缓冲区。如果传送接受,接收方回复OK。
REST--这个命令用来通知收件方复位,所有已存入缓冲区的收件人数据,发件人数据和待传送的数据都必须清除,接收放必须回答OK.
NOOP--这个命令不影响任何参数,只是要求接收放回答OK, 不会影响缓冲区的数据。
QUIT--SMTP要求接收放必须回答OK,然后中断传输;在收到这个命令并回答OK前,收件方不得中断连接,即使传输出现错误。发件方在发出这个命令并收到OK答复前,也不得中断连接。
下面是SMTP答复中用到的代码和含义:
500 Syntax error, command unrecognized
[This may include errors such as command line too long]
501 Syntax error in parameters or arguments
502 Command not implemented
503 Bad sequence of commands
504 Command parameter not implemented
211 System status, or system help reply
214 Help message
[Information on how to use the receiver or the meaning of a
particular non-standard command; this reply is useful only to the human user]
220 Service ready
221 Service closing transmission channel
421 Service not available, closing transmission channel
[This may be a reply to any command if the service knows it must shut down]
250 Requested mail action okay, completed
251 User not local; will forward to
450 Requested mail action not taken: mailbox unavailable
[E.g., mailbox busy]
550 Requested action not taken: mailbox unavailable
[E.g., mailbox not found, no access]
451 Requested action aborted: error in processing
551 User not local; please try
452 Requested action not taken: insufficient system storage
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed
[E.g., mailbox syntax incorrect]
354 Start mail input; end with .
554 Transaction failed
------------------------------------------------------------------------------------------------------
服务器
2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返
回状态的三位数字代码
3.SMTP在TCP协议25号端口监听连接请求
4.连接和发送过程:
a.建立TCP连接
b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令
服务器端正希望以OK作为响应,表明准备接收
c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行
服务器端则表示是否愿意为收件人接受邮件
d.协商结束,发送邮件,用命令DATA发送
e. 以.表示结束输入内容一起发送出去
f.结束此次发送,用QUIT命令退出。
5.另外两个命令:
VRFY---用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。
EXPN---用于扩充邮件列表。
6.邮件路由过程:
SMTP服务器基于‘域名服务DNS中计划收件人的域名来路由电子邮件。SMTP服务器基于DNS中的MX记录
来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。
若SMTP服务器mail.abc.com收到一封信要发到shuser@sh.abc.com:
a.Sendmail请求DNS给出主机sh.abc.com的CNAME记录,如有,假若CNAME到shmail.abc.com,则再次
请求shmail.abc.com的CNAME记录,直到没有为止
b.假定被CNAME到shmail.abc.com,然后sendmail请求@abc.com域的DNS给出shmail.abc.com的MX记录,
shmail MX 5 shmail.abc.com
10 shmail2.abc.com
c. Sendmail最后请求DNS给出shmail.abc.com的A记录,即IP地址,若返回值为1.2.3.4
d. Sendmail与1.2.3.4连接,传送这封给shuser@sh.abc.com的信到1.2.3.4这台服务器的SMTP后台程序
7.SMTP基本命令集:
命令 描述
------------------------------
HELO 向服务器标识用户身份
发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAIL 初始化邮件传输
mail form :
RCPT 标识单个的邮件接收人;常在MAIL命令后面
可有多个rcpt to:
DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束。
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应OK
QUIT 结束会话
RSET 重置会话,当前传输被取消
--------------------------------
8. MAIL form 命令中指定的地址是称作 envelope form 地址,不需要和发送者自己的地址是一致的。
RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:行是什么无关。
9.为什么没有RCPT CC和RCPT BCC:?
所有的接收者协商都通过RCPT TO命令来实现,如果是BCC,则协商发送后在对方接收时被删掉信封接收者
10.邮件被分为信封部分,信头部分和信体部分
envelope form , envelope to 与message form :, message to:完全不相干。
evnelope是由服务器主机间SMTP后台提供的,而message form /to是由用户提供的。有无冒号也是区别。
11. 怎样由信封部分检查是否一封信是否是伪造的?
a. received行的关联性。
现在的SMTP邮件传输系统,在信封部分除了两端的内部主机处理的之个,考虑两个公司防火墙之间
的部分,若两台防火墙机器分别为A和B,但接收者检查信封received:行时发现经过了C.则是伪造的。
b. received:行中的主机和IP地址对是否对应如:
Receibed: form galangal.org (turmeric.com [104.128.23.115] by mail .bieberdorf.edu....
c. 被人手动添加在最后面的received行:
Received: form galangal.org ([104.128.23.115]) by mail .bieberdorf.edu (8.8.5)
Received: form lemongrass.org by galangal.org (8.7.3)
Received: form graprao.com by lemongrass.org (8.6.4)
相关推荐
7. **SMTP基本命令集**: - HELO/EHLO:向服务器自我介绍。 - MAIL FROM:设置发件人。 - RCPT TO:添加收件人。 - DATA:开始传输邮件内容。 - VRFY:验证邮箱。 - EXPN:扩展邮件列表。 - HELP:获取帮助...
下面将详细讲解如何在C++中使用SMTP命令来发送邮件,以及涉及到的相关知识点。 首先,理解SMTP的工作原理至关重要。SMTP基于TCP/IP协议栈,通过建立连接(通常在端口25上)与邮件服务器通信。发送邮件的过程包括一...
6.1.2 **SMTP基本命令** SMTP允许用户通过验证(如ESMTP)发送邮件。发送邮件时,客户端先与SMTP服务器建立连接,然后发送邮件内容。 6.1.3 **POP3基本命令** POP3协议允许客户端从邮件服务器下载邮件。它支持离线...
它不仅包含IMAP的基本命令,还定义了扩展功能,如IDLE(实时邮件通知)和SEARCH(高效查找邮件)。 在邮件截获与还原技术研究中,可能涉及到监控和分析SMTP通信,以了解邮件发送的详细过程。这可能包括使用嗅探工具...
首先,理解SMTP服务器的基本工作原理至关重要。SMTP服务器主要负责邮件的接收和转发。当一个用户通过邮件客户端发送邮件时,SMTP服务器接收到请求,验证发送者身份,处理邮件内容,然后将邮件传递到目标SMTP服务器,...
通过本实验,我们可以学习到使用Telnet命令收发邮件的基本步骤,包括使用SMTP协议发送邮件和使用POP3协议收邮件。实验中,我们使用了各种命令,例如helo、auth login、mail from、rcpt to、data和quit命令,来实现...
SMTP的过程包括基本的发送操作,如MAIL、RCPT和DATA命令。MAIL命令用于标识发送者,RCPT命令用于指定接收者,DATA命令则携带邮件内容。在某些情况下,SMTP支持向多个接收者发送同一邮件,这涉及到向前路径和回复路径...
### SMTP协议电子邮件传送剖析 #### 摘要与引言 本文主要介绍了一种通过遵循SMTP(简单邮件传输协议)规范,在程序中实现...了解SMTP协议的基本原理和具体实现方法,对于开发支持邮件发送功能的应用具有重要意义。
本实验旨在通过使用Telnet命令来收发邮件,了解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)与POP3(Post Office Protocol Version 3,邮局协议第三版)的基本原理及其工作流程。 #### SMTP协议详解 ...
通过上述对SMTP协议的详细介绍,我们可以了解到其工作原理、基本命令以及扩展功能。随着网络安全技术的不断发展,未来的SMTP协议将会更加安全、可靠,更好地服务于全球范围内的电子邮件通信需求。
通过本次实验,不仅学习了SMTP协议的基本命令和工作原理,还掌握了如何使用Wireshark等工具对网络数据包进行抓取和分析的方法。这对于深入理解电子邮件的传输机制、提高网络安全意识具有重要意义。
通过这个项目,你可以学习到如何将MFC的Socket功能应用于实际应用中,理解SMTP协议的工作原理,并且掌握构建SMTP客户端的基本步骤。这对于开发自己的邮件应用或者进行网络通信编程都是非常有价值的实践经验。
在这里,我们介绍了 Java Socket 的基本使用方法,并实现了一个简单的 SMTP 客户端。通过这个示例,我们可以了解 Java Socket 的使用方法,并学习如何实现 SMTP 协议来发送邮件。 扩展阅读 * Java Socket 编程 * ...
本文将深入探讨SMTP协议的基本原理,以及如何使用C语言编写SMTP客户端和服务器。 首先,了解SMTP协议的基本概念至关重要。SMTP基于TCP/IP协议栈,使用端口25进行通信。它的主要任务是确保邮件从发送方服务器传递到...
在SMTP邮件用户代理中,C语言可以用来创建socket连接、发送和接收数据包,以及处理SMTP协议的各种命令和响应。 首先,让我们了解一下Linux socket的基本操作: 1. 创建socket:使用`socket()`函数创建一个socket...
SMTP服务器源代码.doc文档很可能是包含了实现SMTP服务的基本步骤和关键函数的详细解释。通过阅读这份代码,学习者可以了解到以下核心知识点: 1. **SMTP协议基础**:SMTP协议规定了邮件的传输过程,包括客户端(发...
首先,让我们深入了解一下SMTP协议的基本概念。SMTP基于TCP/IP协议族,使用端口25进行通信。它遵循客户端-服务器模型,其中邮件客户端(如电子邮件应用程序)作为SMTP客户端,与邮件服务器(SMTP服务器)进行交互来...