在响应的文本信息中应该表时这是对哪个命令进行的响应;
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
推荐阅读
- SMTP安全手册—理论基础
- SMTP协议-PHP的邮件发送程序例子
- L71使用三天的感受
- 为什么选用SMTP?
- Internet邮件从Just-Send-8到8bit-SMTP/MIME的转换
- VC++ SMTP协议电子邮件传送剖析
- 关于SMTP
- 垃圾邮件泛滥成灾 SMTP协议将为信用而战
- 使用SMTP和WebSphere Studio构建Web服务——原始SMTP
- 使用SMTP和WebSphere Studio的Web服务—引言和设计