网站运营
位置:首页>> 网站运营>> SMTP服务对命令流水的扩展(2)

SMTP服务对命令流水的扩展(2)

 来源:asp之家 发布时间:2010-03-24 18:47:00 

标签:SMTP,服务器,命令

4.2.服务器对流水的支持
  服务器应该提供下面的服务扩展:
  在任何情况下不行将TCP输入缓冲区的内容丢弃;
  当且仅当接收到一个或多个有效的RCPTTO命令时,才对DATA命令应该主动发出响应;
  因为DATA命令没有合法的接收者,结果接收到空信息时,不要再发出消息给任何人(当然对DATA命令还要做一个响应);
  对成组的RSET,MAILFROM,SENDFROM,SOMLFROM,SAMLFROM和RCPTTO命令的响应先保存起来,然后一起发送;
  不答应缓存对EHLO,DATA,VRFY,EXPN,TURN,QUIT和NOOP的响应;
  不答应缓冲不可识别命令的响应;
  在本地TCP输入缓冲区为空时必须将据有未发出的响应全部发出;
  不答应对未接收到的命令进行猜测;或假设它的存在;
  在响应的文本信息中应该表时这是对哪个命令进行的响应;
  5.例子
  下面是一个不支持流水的SMTP会话:其中S代表服务器,C代表客户端;
  S:<等待打开连接>
  C:<打开连接>
  S:220innosoft.comSMTPserviceready
  C:HELOdbc.mtview.ca.us
  S:250innosoft.com
  C:MAILFROM:
  S:250senderOK
  C:RCPTTO:
  S:250recipientOK
  C:RCPTTO:
  S:250recipientOK
  C:RCPTTO:
  S:250recipientOK
  C:DATA
  S:354传输邮件内容,并以一个只有”.”的行结束邮件
  ...
  C:.
  S:250messagesent
  C:QUIT
  S:221goodbye
  在上例中客户需要9次等待服务器的响应,下面我们来看看在支持流水的情况下是什么样子:其中S代表服务器,C代表客户端;
  S:<等待打开连接>
  C:<打开连接>
  S:220innosoft.comSMTPserviceready
  C:EHLOdbc.mtview.ca.us
  S:250-innosoft.com
  S:250PIPELINING
  C:MAILFROM:
  C:RCPTTO:
  C:RCPTTO:
  C:RCPTTO:
  C:DATA
  S:250senderOK
  S:250recipientOK
  S:250recipientOK
  S:250recipientOK
  S:354传输邮件内容,并以一个只有”.”的行结束邮件
  ...
  C:.
  C:QUIT
  S:250messagesent
  S:221goodbye
  现在等待的次数由9次变为了4次,下面我们看一下当据有接收者均被拒绝时会是什么情况:
  S:<等待打开连接>
  C:<打开连接>
  S:220innosoft.comSMTPserviceready
  C:EHLOdbc.mtview.ca.us
  S:250-innosoft.com
  S:250PIPELINING
  C:MAILFROM:
  C:RCPTTO:
  C:RCPTTO:
  C:DATA
  S:250senderOK
  S:550remotemailtonotallowed
  S:550remotemailtonotallowed
  S:554novalidrecipientsgiven//未给出合法的接收者
  C:QUIT
  S:221goodbye
  客户端也等待了4次,假如服务器在接收DATA命令当不检查接收者的合法性,则是下面的情况:
  S:<等待打开连接>
  C:<打开连接>
  S:220innosoft.comSMTPserviceready
  C:EHLOdbc.mtview.ca.us
  S:250-innosoft.com
  S:250PIPELINING
  C:MAILFROM:
  C:RCPTTO:
  C:RCPTTO:
  C:DATA
  S:250senderOK
  S:550remotemailtonotallowed
  S:550remotemailtonotallowed
  S:354传输邮件内容,并以一个只有”.”的行结束邮件
  C:.
  C:QUIT
  S:554novalidrecipients//未给出合法的接收者
  S:221goodbye

0
投稿

猜你喜欢

手机版 网站运营 asp之家 www.aspxhome.com