1. 什么是SMTP
SMTP是控制两个邮件服务器之间电子邮件报文交换的简单协议。该协议用于因特网,并由TETF定义。使用SMTP,一个进程可以将邮件传输到同一网络上的其他进程,或者经由两个网络都可访问的中继器或网关进程传输到其他一些网络。邮件报文在其从发件人到最终的收件人路径上可能会通过许多的中间中继器或网关主机。
SM'TP采用客户机/服务器关系。客户机是发送邮件的系统。它通过TCP连接建立了到SMTP服务器的双向传输信道。 当发件人和收件人通过同一传输服务(在同一网络上)连接起来时,邮件直接在双方之间进行传输。当两者没有连接到同一传输服务时,邮件通过一个或更多的中继SM'TP服务器进行传输。大型机构会建立自己的中继服务器来管理进出邮件,这些服务器通常都始终处于联机状态,并提供各种各样的安全功能。
邮件服务器运行报文处理协议,例如POP3(邮局协议版本3)和IMAP4(因特网邮件访问协议版本4),两者都提供邮件缓存和邮件转发服务,而且都使用SM'I甲来交换邮件。SMTP就像邮件承运者,而POP和IMAP4则像邮局。IMAP4是一种新的而且更为灵活的协议,它是POP3的替代协议。 当用户连接到邮件服务器时,服务器验证用户身份并赋予他们访问其信箱的权限。然后用户将邮件下载到其计算机上。IMAP4改进了这种模型,允许用户将邮件保存在他们在邮件服务器上的信箱中,而不是自动将邮件下载到计算机上。这对于远程移动用户来说是非常有用的。
SMTP报文可能通过许多跳才能传输到最终目的地。在此情况下,在中继服务器间建立了一系列的连接。从一个服务器到下一个服务器之间有交接的责任,而且每一服务器必须要么传送报文要么向发件人回报传送失败。
SMTP使用基本的请求和响应机制来传输邮件,几个简单的命令使得这种交换成为可能。这些命令由ASCII(文本)构成。简单的命令结构便于为任何平台建立邮件服务器和客户机。客户端通过发送一系列命令启动邮件处理,这些命令指定了邮件的发件人与目的地和报文内容传输,服务器端对每个命令作出响应。通常每次进行一个命令操作,但是RFC 2920(SMTP Service Extension:for Command Pipelining,September 2000)中所述的管道功能允许在单个TCP发送操作中向服务器发送多个命令。
一个提供电子邮件服务的Internet协议。
2. SMTP地址的什么是SMTP
SMTP(Simple Mail Transfer Protocol)是一种提供可靠且有效电子邮件传输的协议。SMTP是建模在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP设计基于以下通信模型:针对用户的邮件请求,发送SMTP与接收SMTP之间建立一个双向传送通道。接收SMTP可以是最终接收者也可以是中间传送者,即“SMTP邮件中继”。SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方面传送。在因特网上这个双向传送通道是一个TCP连接。为SMTP服务分配的TCP端口号是25。所以,可以用“TCPPORT =25”来判断一个TCP流是否属于一个SMTP会话,而设置包捕获时的过滤规则。
SMTP 是一种提供可靠且有效电子邮件传输的协议。 SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。
SMTP 独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。 SMTP 重要特性之一是其能跨越网络传输邮件,即“SMTP 邮件中继”。通常,一个网络可以由公用互联网上 TCP 可相互访问的主机、防火墙分隔的 TCP/IP 网络上 TCP 可相互访问的主机,及其它 LAN/WAN 中的主机利用非 TCP 传输层协议组成。使用 SMTP ,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。
在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一跳 IP 地址。
3. smtp协议是指
SMTP协议一般指SMTP,SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。
(3)smtp用于启动邮递处理命令扩展阅读:
工作过程
SMTP协议的工作过程可分为如下3个过程:
1、建立连接:在这一阶段,SMTP客户请求与服务器的25端口建立一个TCP连接。一旦连接建立,SMTP服务器和客户就开始相互通告自己的域名,同时确认对方的域名。
2、邮件传送:利用命令,SMTP客户将邮件的源地址、目的地址和邮件的具体内容传递给SMTP服务器,SMTP服务器进行相应的响应并接收邮件。
3、连接释放:SMTP客户发出退出命令,服务器在处理命令后进行响应,随后关闭TCP连接。
参考资料来源:网络-SMTP协议
4. smtp谁给讲讲
1.SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个 服务器 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收到一封信要发到[email protected]:
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连接,传送这封给[email protected]的信到1.2.3.4这台服务器的SMTP后台程序
7.SMTP基本命令集:
命令 描述 ------------------------------ HELO 向服务器标识用户身份 发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAIL 初始化邮件传输 mail from: RCPT 标识单个的邮件接收人;常在MAIL命令后面 可有多个rcpt to: DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束。 VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令 EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 HELP 查询服务器支持什么命令 NOOP 无操作,服务器应响应OK QUIT 结束会话 RSET 重置会话,当前传输被取消 --------------------------------
8. MAIL FROM命令中指定的地址是称作 envelope from地址,不需要和发送者自己的地址是一致的。 RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:行是什么无关。 9.为什么没有RCPT CC和RCPT BCC:? 所有的接收者协商都通过RCPT TO命令来实现,如果是BCC,则协商发送后在对方接收时被删掉信封接收者 10.邮件被分为信封部分,信头部分和信体部分 envelope from, envelope to 与message from:, message to:完全不相干。 evnelope是由服务器主机间SMTP后台提供的,而message from/to是由用户提供的。有无冒号也是区别。
11. 怎样由信封部分检查是否一封信是否是伪造的? a. received行的关联性。 现在的SMTP邮件传输系统,在信封部分除了两端的内部主机处理的之个,考虑两个公司防火墙之间 的部分,若两台防火墙机器分别为A和B,但接收者检查信封received:行时发现经过了C.则是伪造的。 b. received:行中的主机和IP地址对是否对应如: Receibed: from galangal.org (turmeric.com [104.128.23.115] by mail .bieberdorf.e.... c. 被人手动添加在最后面的received行: Received: from galangal.org ([104.128.23.115]) by mail .bieberdorf.e (8.8.5) Received: from lemongrass.org by galangal.org (8.7.3) Received: from graprao.com by lemongrass.org (8.6.4)
5. SMTP是什么意思
简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。附录A,B,C和D描述了不同传送服务下SMTP的使用。在名词表中还定义了本文档中使用的术语。
SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。
是因特网电子邮件系统首要的应用 层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。跟大多数应用层协议一样,SMTP也存在两个 端:在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服 务器在向其他邮件服务器发送邮件消息时,它是作为SMTP客户在运行。当一个邮件服务器从其他邮件服务器接收邮件消息时,它是作为SMTP服务器在运行。
SMTP协议与人们用于面对面交互的礼仪之间有许多相似之处。首先,运行在发送端邮件服务器主机上的SMTP客户,发起建立一个到运行在接收端邮件服务 器主机上的SMTP服务器端口号25之间的TCP连接。如果接收邮件服务器当前不在工作,SMTP客户就等待一段时间后再尝试建立该连接。这个连接建立之 后,SMTP客户和服务器先执行一些应用层握手操作。就像人们在转手东西之前往往先自我介绍那样,SMTP客户和服务器也在传送信息之前先自我介绍一下。 在这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电子邮件地址。彼此自我介绍完毕之后,客户发出邮件消息。SMTP可以指望由 TCP提供的可靠数据传输服务把该消息无错地传送到服务器。如果客户还有其他邮件消息需发送到同一个服务器,它就在同一个TCP连接上重复上述过程;否 则,它就指示TCP关闭该连接。[1]
编辑本段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实现中就将用户邮箱名称保留成初始时的样子,主机名称对大小写不敏感。
命令与应答由ASCⅡ字母表组成,当传送服务提供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:<[email protected]>
R: 250 OK
S: RCPT TO:<[email protected]>
R: 250 OK
S: RCPT TO:<[email protected]>
R: 550 No such user here
S: RCPT TO:<[email protected]>
R: 250 OK
S: DATA
R: 354 Start mail input; end with<CRLF>.<CRLF>
S: Blah blah blah...
S: ...等等
S: <CRLF>.<CRLF>
R: 250 OK
此信被前两个人接收,而第三个人在此主机上没有邮箱。
3.2. 转发
下面是一些<forward-path>;中目的地址不正确的,但接收者知道正确的目的地址的例子。在这些例子中,下列应答之一(251,551)应该允许发送方与获得正确地址。
251:用户不在本地;将向前发送到<forward-path>;。
这个应答意味着,接收方SMTP知道用户的邮箱在另外的主机上,而且意味着将在未来使用正确的转向路径。请注意,主机或者用户,或者它们两者是不同的。接收方负责传送消息。
551 :用户非本地,请尝试<forward-path>
这个应答意味着接收SMTP知道用户的邮箱在另外的主机上,并意味着使用了正确的转发路径。注意请注意,主机或者用户,或者它们两者是不同的。接收方拒绝接收此用户的信件,发送者必须根据提供的信息重新发送或者向原发送者返回错误信息。下例显示了这些响应的应用。
转发的例子
S: RCPT TO:<[email protected]>
R: 251 User not local; will forward to<[email protected]>
或者
S: RCPT TO:<[email protected]>
R: 551 User not local; please try<[email protected]>
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<[email protected]>
或者
S: VRFY Smith
R: 251 User not local; will forward to<[email protected]>
或者
S: VRFY Jones
R: 550 String does not match anything.
或者
S: VRFY Jones
R: 551 User not local; please try<Jones@USC-ISIQ.,ARPA>
或者
S: VRFY Gourzenkyinplatz
R: 553 User ambiguous.
邮箱列表要求多个响应的情况如下例所示:
S: EXPN Example-People
R: 250-Jon Postel <[email protected]>
R: 250-Fred Fonebone <[email protected]>
R: 250-Sam Q. Smith <SQSmith@USC-ISIQ.,ARPA>
R: 250-Quincy Smith<@USC-ISIF..ARPA:[email protected]>
R: 250-<[email protected]>
R: 250 <[email protected]>
或者
S: EXPN Executive-Washroom-List
R: 550 Access Denied to You.
VERF和EXPN命令的字符串命令参数因为具体实现的不同而不能再加以限制了。在一些系统上,EXPN命令的参数可能是一个包含邮件列表的文件名,但是在Internet上有许多不同的文件结构。
VRFY和EXPN命令在最小实现中并不包括,当它们实现时,它们也不要求被在传送间实现。
编辑本段3.4. 发送信件和获得信件
SMTP的主要目的是将邮件发送到用户的邮箱中。由一些主机提供的类似的功能是把邮件送至用户的终端(如果用户正打开终端)。将邮件送到用户的邮箱中称为发送信件(mailing);而送至用户终端则称之为获得信件
(sending)。因为在一些主机上,这两者的实现十分类似,所以它们同时
被放入了SMTP中。然而,获得信件命令在SMTP的最小实现中是没有的。用户应该具有控制向终端上写信息的能力。大部分主机允许用户接受或者拒绝类似的信息。
下面三个命令被定义来支持获得信件。它们被用于邮件命令而不是MAIL
命令,指示接收SMTP这种操作的特殊意义:
SEND <SP> FROM:<reverse-path><CRLF>
SEND命令要求邮件内容直接传送到用户终端。如果用户未打开终端(或
者未接收终端信息),450响应将返回一个RCPT命令。如果信息被成功发送,此操作成功。
SOML <SP> FROM:<reverse-path><CRLF>;
Send或者MaiL命令要求将邮件内容直接发送到用户的终端上(如果用户在终端上)。如果用户不在终端上,邮件内容直接进入邮箱。如果邮件被发送到用户终端或者用户信箱,发送操作成功。
SAML <SP> FROM:<reverse-path><CRLF>
Send和MaiL命令要求邮件内容直接发送到用户终端上(如果用户在终端上)。不管怎么样,信件都会进入信箱。如果信件进入信箱,发送操作成功。
用于MAIL命令的响应和这些命令的响应相同。
编辑本段3.5. 打开和关闭
当打开传送通道时,要交换一些信息以确定双方的身份。以下的命令是
用于打开和关闭的:
HELO <SP> <domain> <CRLF>
QUIT <CRLF>
在HELLO命令中,主机自己发送命令,此命令可以被解释为:“你好,
我是XX”。
打开联结的例子
R: 220 BBN-UNⅨ..ARPA Simple Mail Transfer ServiceReady
S: HELO USC-ISIF..ARPA
R: 250 BBN-UNⅨ..ARPA
关闭联结的例子
S: QUIT
R: 221 BBN-UNⅨ..ARPA Service closing transmissionchannel
编辑本段3.6. 转发
转发路径可能是如下格式:"@ONE,@TWO:JOE@THREE",在这里,ONE,TWO
和THREE是主机。这种格式用于强调地址和路径的区别。邮箱是绝对地址,路径是关于如何到达的信息。这两个概念不应该被混淆。
概念上,转发路径的元素被移动到回复路径作为从一个SMTP服务器到另一个SMTP服务器的信息。回复路径是一个反向数据源路径,例如从当前信息的位置到发起者的位置。当一个SMTP服务器从转发路径中删除自己的标记并将它插入到回复路径中时,它必须使用它发送环境能够理解的名称来进行,以防它的名称在不同的环境中被理解为不同的名字。
如果当SMTP接收到信息的转发路径的第一个元素不是此SMTP的标记时,此元素不从转发路径中删除,而被用来决定下一个应该发送到的SMTP服务器。在任何情况下,SMTP都将自己的标记加入反向路径中。
使用源路径时,接收SMTP接收转发的邮件并发送到另一接收SMTP服务器上。接收服务器可以接受或拒绝转发本地用户的邮件。接收SMTP通过将它自己的标记从转发路径移至回复路径的开始处来改变命令参数。这时,接收SMTP变成了发送SMTP,也就建立了到下一个转发路径中SMTP的通道,然后,它向这个SMTP发送邮件。
在回复路径上的头一个主机应是发送SMTP命令的主机,在转发路径上第一个主机应是接收SMTP命令的主机。
注意:转发路径和回复路径出现在SMTP命令和应答中,但不一定要出现在信
息中。也就是说,没有必须要这样的路径特别这种格式出现在信息头的"To:","From:"和"CC:"等域中。
如果SMTP服务器接受了转发任务,但后来它发现因为转发路径不正确或者其它原理无法发送邮件,它必须建立一"undeliverable mail"信号,将此信号送到此信的发主者那里。
此信号必须是从此主机的SMTP服务上发出的,当然了,此服务器不应该再报告出错信息的错误。一种阻止这种出错报告循环的情况是在信号的邮件命令的回复路径上置空。在传送此信息时,允许将回复路径也置为空。一个MAIL命令后的回复路径为空表现为如下形式:
MAIL FROM:<>
下例中显示了不可传送的邮件信息。此信息是对从HOSTW上的JOE发出的邮件经过在HOSTX需要经过HOSTZ到达HOSTY时出错的回应。我们看到的例子是在HOSTX和HOSTY之间发生的。
不可传送邮件信息的例子
S: MAIL FROM:<>
R: 250 ok
S: RCPT TO:<@HOSTX..ARPA:[email protected]>
R: 250 ok
S: DATA
R: 354 send the mail data,end with .
S: Date: 23 Oct 81 11:22:33
S: From: [email protected]
S: To: JOE@HOSTW,.ARPA
S: Subject: Mail System Problem
S: Sorry JOE,your message to [email protected] lost.
S: HOSTZ..ARPA said this:
S: "550 No Such User"
S: .
R: 250 ok
编辑本段常见问题
⒈ SMTP是什么?有什么作用?答: SMTP是Simple Mail Transfer Protocol的缩写,即简单邮件传输协议,是一种提供有效可靠传送电子邮件的协议,用于在两台邮件服务器间交换邮件.
⒉ 邮件服务器间邮件传输使用了TCP协议,为何邮件有时还会丢失?
答: 邮件服务器之间的SMTP协议使用TCP连接,可以保证邮件准确无误地在邮件服务器之间传输. 但由于邮件服务器本身的故障,例如邮件空间不足等,会导致邮件无法完成传输而导致丢失.
⒊ 发件人用户代理为何不直接将邮件发送给收件人的用户代理,而是通过邮件服务器来传输?
答: 因为用户电脑性能的限制,无法运行收发邮件的程序,并且无法不间断地运行并连接到互联网上. 因此只能将信件暂时存放在邮件服务器中,用户需要时就可以去下载信件.
6. SMTP的主要功能是什么
用于传输系统之间的邮件信息并提供来信有关的通知。
1、通过SMTP协议所指定的服务器,就可以把E—mail寄到收信人的服务器上了,整个过程只需要几分钟。SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或中转用户发出的电子邮件。
2、SMTP是一种提供可靠且有效电子邮件传输的协议。是建立在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。
3、SMTP重要的特性之一是它能跨越网络传输邮件,也即“SMTP邮件中继”。使用SMTP,可实现相同网络上处理机之间的邮件传输,也可以通过中继器或网关实现某处理机与其它网络之间的邮件传输。
具有域名服务系统(DNS)功能的邮件交换服务器还可以用来识别出传输邮件的下一跳IP地址。
工作过程:
1、建立连接:在这一阶段,SMTP客户请求与服务器的25端口建立一个TCP连接。一旦连接建立,SMTP服务器和客户就开始相互通告自己的域名,同时确认对方的域名。
2、邮件传送:利用命令,SMTP客户将邮件的源地址、目的地址和邮件的具体内容传递给SMTP服务器,SMTP服务器进行相应的响应并接收邮件。
3、连接释放:SMTP客户发出退出命令,服务器在处理命令后进行响应,随后关闭TCP连接。
7. 什么叫smtp什么叫pop3谢谢
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转你发出的电子邮件。
POP3 :是Post Office Protocol 3的简称,是访问Internet上电子邮箱的常用方法。 POP3服务允许你设置你的本地浏览器的输入/输出邮件服务器名称,就像使用你的本地电子信箱一样使用你自己的E-mail软件来收发邮件。以371.net为例,当你使用nescape、Iemail、outlook express等软件收信时,必须在这些软件上设SMTP server和POP3 server的地址。
8. SMTP是如何如何转发邮件的呢
电子邮件在Internet上发送和接收的原理可以很形象地用我们日常生活中邮寄包裹来形容:当我们要寄一个包裹时,我们首先要找到任何一个有这项业务的邮局,在填写完收件人姓名、地址等等之后包裹就寄出而到了收件人所在地的邮局,那么对方取包裹的时候就必须去这个邮局才能取出。同样的,当我们发送电子邮件时,这封邮件是由邮件发送服务器(任何一个都可以)发出,并根据收信人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收信人要收取邮件也只能访问这个服务器才能完成。
1. 电子邮件的发送
SMTP是维护传输秩序、规定邮件服务器之间进行哪些工作的协议,它的目标是可靠、高效地传送电子邮件。SMTP独立于传送子系统,并且能够接力传送邮件。
SMTP基于以下的通信模型:根据用户的邮件请求,发送方SMTP建立与接收方SMTP之间的双向通道。接收方SMTP可以是最终接收者,也可以是中间传送者。发送方SMTP产生并发送SMTP命令,接收方SMTP向发送方SMTP返回响应信息。
连接建立后,发送方SMTP发送MAIL命令指明发信人,如果接收方SMTP认可,则返回OK应答。发送方SMTP再发送RCPT命令指明收信人,如果接收方SMTP也认可,则再次返回OK应答;否则将给予拒绝应答(但不中止整个邮件的发送操作)。当有多个收信人时,双方将如此重复多次。这一过程结束后,发送方SMTP开始发送邮件内容,并以一个特别序列作为终止。如果接收方SMTP成功处理了邮件,则返回OK应答。
对于需要接力转发的情况,如果一个SMTP服务器接受了转发任务,但后来却发现由于转发路径不正确或者其他原因无法发送该邮件,那么它必须发送一个“邮件无法递送”的消息给最初发送该信的SMTP服务器。为防止因该消息可能发送失败而导致报错消息在两台SMTP服务器之间循环发送的情况,可以将该消息的回退路径置空。
2. 电子邮件的接收
电子邮件协议第3版本(POP3)
要在因特网的一个比较小的节点上维护一个消息传输系统(MTS,Message Transport System)是不现实的。例如,一台工作站可能没有足够的资源允许SMTP服务器及相关的本地邮件传送系统驻留且持续运行。同样的,要求一台个人计算机长时间连接在IP网络上的开销也是巨大的,有时甚至是做不到的。尽管如此,允许在这样小的节点上管理邮件常常是很有用的,并且它们通常能够支持一个可以用来管理邮件的用户代理。为满足这一需要,可以让那些能够支持MTS的节点为这些小节点提供邮件存储功能。POP3就是用于提供这样一种实用的方式来动态访问存储在邮件服务器上的电子邮件的。一般来说,就是指允许用户主机连接到服务器上,以取回那些服务器为它暂存的邮件。POP3不提供对邮件更强大的管理功能,通常在邮件被下载后就被删除。更多的管理功能则由IMAP4来实现。
邮件服务器通过侦听TCP的110端口开始POP3服务。当用户主机需要使用POP3服务时,就与服务器主机建立TCP连接。当连接建立后,服务器发送一个表示已准备好的确认消息,然后双方交替发送命令和响应,以取得邮件,这一过程一直持续到连接终止。一条POP3指令由一个与大小写无关的命令和一些参数组成。命令和参数都使用可打印的ASCII字符,中间用空格隔开。命令一般为3~4个字母,而参数却可以长达40个字符。
因特网报文访问协议第4版本(IMAP4)
IMAP4提供了在远程邮件服务器上管理邮件的手段,它能为用户提供有选择地从邮件服务器接收邮件、基于服务器的信息处理和共享信箱等功能。IMAP4使用户可以在邮件服务器上建立任意层次结构的保存邮件的文件夹,并且可以灵活地在文件夹之间移动邮件,随心所欲地组织自己的信箱,而POP3只能在本地依靠用户代理的支持来实现这些功能。如果用户代理支持,那么IMAP4甚至还可以实现选择性下载附件的功能,假设一封电子邮件中含有5个附件,用户可以选择下载其中的2个,而不是所有。
与POP3类似,IMAP4仅提供面向用户的邮件收发服务。邮件在因特网上的收发还是依靠SMTP服务器来完成。
[电子邮件地址的构成]
电子邮件地址的格式由三部分组成。第一部分“USER”代表用户信箱的账号,对于同一个邮件接收服务器来说,这个账号必须是唯一的;第二部分“@”是分隔符;第三部分是用户信箱的邮件接收服务器域名,用以标志其所在的位置。