为什么发的邮件会被退回来,显示“rcpt handle timeout”是怎么回事?

为什么发的邮件会被退回来,显示“rcpt handle timeout”是怎么回事?,第1张

rcpt handle timeout表示:\x0d\服务器处理超时\x0d\可能原因是:对方邮箱地址错误或者是我方/对方网络故障。\x0d\timeout 英[taɪmˈaʊt] \x0d\n 超时; (球类比赛中的) 暂时休息,(工作时的)工间休息; \x0d\[例句]A seconds-based timeout is also used in this loop to reset the knock sequences after sufficient delay\x0d\在这个循环中还使用了一个基于秒的超时,在足够的延时之后重置敲打序列。\x0d\[其他] 复数:timeouts

SMTP被用来在因特网上传递电子邮件。文件RFC821规定了该协议的所有细节。但是你只须记住下面的内容--该协议的基本命令和方法就行了。
协议的原理很简单。无非是一个客户端计算机向服务器发送命令,然后服务器向客户端计算机返回一些信息。客房端发送的命令以及服务器的回应都是字符串,你并不需要特别的软件就能读出它们。如果你仔细看过WinsockTerminal示例程序的源代码,你就会发现这一点。现在让我们用这个示例程序来向自己发一封电子邮件吧。
运行示例程序,单击"Connect"按钮,在"Connectto"对话框中输入你的电子邮件服务器的地址,选择SMTP选项。最后按"Connect"按钮。如果连接成功,Winsock控件会产生Connected事件,在状态栏中也可看到连接成功的信息。在主文本窗口中你将看到从服务器返回的文本。该文本包含一个三位数的代码及描述,例如:
220-nscinforuSendmail8612/869readyatWed,22Apr199822:54:41+0300
220ESMTPspokenhere
不必太过留意这些描述。因为这些描述可能会因服务器而异。你只须要知道代码所代表的意思就行了。代码220表示成功建立连接,服务器等待你的第一个命令。
向服务器传递的第一个命令是HELO该命令包含一个参数,即你的邮箱名。
HELOoleg
注意:在RFC821中,HELO是一个可选择性命令,如果服务器不要求该命令的话,你可以把它忽略掉。
如果命令成功,服务器会返回一个代码为250的回应。下一步用MAILFROM命令告诉服务器你想发一封邮件。该命令以发信人的邮件地址为参数。
MAILFROM : [email]oleg@vbipcom[/email]
发完命令后,如果服务器返回一个代码为250回应,你就可以向服务器发送RCPTTO命令了。该命令以收信人地址为参数,一看便知是告诉服务器你想将邮件发到收信人地址处。
RCPTTO : [email]somebody@domaincom[/email]
如果你想将邮件发给多个收件人的话。你需要多次使用RCPTTO命令,对每个命令,服务器都会返回代码为250的回应。
现在你可以向服务器发送邮件正文了。用DATA命令告诉服务器以下的内容为邮件正文。在你从服务器收到代码为354的回应后,你就可以发送邮件正文了。邮件按行发送,每行邮件以一个无回车的换行符结束(在VB中就是vbLf)示例程序知道何时使用换行符,何时使用回车加换行符。所以你只须按回车键就行了。下面是一个例子:
Subject : Myfirste-mailmessage
Firstlineofamessage
Secondline

注意上面最后一行的最后一个字符是一个小数点。这是正文结束的标志。用VB代码表示就是vbLf&""&vbCrLf服务器收到这个标志后,就会立即向你返回一个代码为250的回应以及该邮件的唯一ID号。
250WAA10568Messageacceptedfordelivery
任务完成了,你可以继续发送下封邮件,也可以断开同服务器的连接。如果要断开同服务器的连接就用QUIT命令。在这种情况下,服务器会返回一个代码为221的回应并断开连接。
二、SMTP协议原始命令码和工作原理
1SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个
服务器
2SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返
回状态的三位数字代码
3SMTP在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服务器mailabccom收到一封信要发到[email]shuser@shabccom[/email]:
aSendmail请求DNS给出主机shabccom的CNAME记录,如有,假若CNAME到shmailabccom,则再次
请求shmailabccom的CNAME记录,直到没有为止
b假定被CNAME到shmailabccom,然后sendmail请求@abccom域的DNS给出shmailabccom的MX记录,
shmail MX 5 shmailabccom
10 shmail2abccom
c Sendmail最后请求DNS给出shmailabccom的A记录,即IP地址,若返回值为1234
d Sendmail与1234连接,传送这封给[email]shuser@shabccom[/email]的信到1234这台服务器的SMTP后台程序
7SMTP基本命令集:
命令 描述
------------------------------
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 galangalorg (turmericcom [10412823115] by mail bieberdorfedu
c 被人手动添加在最后面的received行:
Received : from galangalorg ([10412823115]) by mail bieberdorfedu (885)
Received : from lemongrassorg by galangalorg (873)
Received : from grapraocom by lemongrassorg (864)
三、SMTP协议通讯模型
SMTP协议是TCP/IP协议族中的一员,主要对如何将电子邮件从发送方地址传送到接收方地址,也即是对传输的规则做了规定。SMTP协议的通信模型并不复杂,主要工作集中在发送SMTP和接收SMTP上:首先针对用户发出的邮件请求,由发送SMTP建立一条连接到接收SMTP的双工通讯链路,这里的接收SMTP是相对于发送SMTP而言的,实际上它既可以是最终的接收者也可以是中间传送者。发送SMTP负责向接收SMTP发送SMTP命令,而接收SMTP则负责接收并反馈应答。可大致用下面的通讯模型示意图来表示:
[attach]483[/attach]
四、SMTP协议的命令和应答
从前面的通讯模型可以看出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服务器是 smtpqqcom ,smtpsohucom ,smtpsinacom 等等。


SMTP账号就是完整邮箱账号, SMTP密码为自己设置的。

基本介绍

简单邮件传输协议(SMTP)是一种基于文本的电子邮件传输协议,是在因特网中用于在邮件服务器之间交换邮件的协议。SMTP是应用层的服务,可以适应于各种网络系统。

SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF。响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。

流程简介

SMTP要经过建立连接、传送邮件和释放连接3个阶段。具体为:


(1)建立TCP连接。


(2)客户端向服务器发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令。


(3)服务器端以OK作为响应,表示准备接收。


(4)客户端发送RCPT命令。


(5)服务器端表示是否愿意为收件人接收邮件。


(6)协商结束,发送邮件,用命令DATA发送输入内容。


(7)结束此次发送,用QUIT命令退出。

SMTP协议。
SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。
工作过程
SMTP要经过建立连接、传送邮件和释放连接3个阶段。具体为:
(1)建立TCP连接。
(2)客户端向服务器发送HELLO命令以标识发件人自己的身份,然后客户端发送MAIL命令。
(3)服务器端以OK作为响应,表示准备接收。
(4)客户端发送RCPT命令。
(5)服务器端表示是否愿意为收件人接收邮件。
(6)协商结束,发送邮件,用命令DATA发送输入内容。
(7)结束此次发送,用QUIT命令退出。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13452552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-09
下一篇 2023-08-09

发表评论

登录后才能评论

评论列表(0条)

保存