SMTP服务扩展(2)

来源:asp之家 时间:2010-03-16 18:48:00 

如果出于某种原因,服务器不能列出它所支持的服务扩展,就返回代码554。在接收到这个代码后,客户要么发送HELO,要么发送QUIT命令。有时候服务器接收到EHLO命令,可是命令参数不可接受,它就返回代码501。如果服务器识别了EHLO,但对服务器扩展未实现,则返回代码502。如果服务器不再提供服务扩展,则返回代码421。在接收到这个代码后,客户要么发送HELO,要么发送QUIT命令。如果服务器不支持服务扩展,则返回500,服务器保持现有状态,在接收到这个代码后,客户要么发送HELO,要么发送QUIT命令。

有时候,SMTP服务器会在接收到EHLO命令后因为某种原因关闭连接,这种情况在原来的SMTP协议标准中未涉及。为了处理这种情况,客户必须能够确认服务器是否能够工作,它可以重新连接并发送HELO或EHLO命令。有些服务器在接收到一个EHLO命令后会拒绝接收新的HELO命令,这时可以利用RSET命令重新启动,然后再发送HELO。如果客户不注意这样的小细节,会收到失败代码。

下面我们来看一下MAIL FROM和RCPT TO参数。许多服务扩展是在MAIL FROM和RCPT TO命令后加入一些参数来实现的。下面我们看一下这两个命令的格式:

 

esmtp-cmd ::= inner-esmtp-cmd [SP esmtp-parameters] CR LF

esmtp-parameters ::= esmtp-parameter *(SP esmtp-parameter)

esmtp-parameter ::= esmtp-keyword ["=" esmtp-value]

esmtp-keyword ::= (字母/数字) *(字母/数字/"-")

esmtp-value ::= 1*<除了空格,"="和控制字符的所有字符>

inner-esmtp-cmd ::= ("MAIL FROM:"返回路径) / ("RCPT TO:"转发路径)

如果服务器不能识别或实现一个或多个MAIL FROM或RCPT TO参数,它应该返回代码555。如果这种情况只是暂时的,服务器返回代码455。其它返回代码请查阅相关资料,这里不再详述了。服务器以服务扩展处理时,它处理的任何信息都应该在包头上加上“服务扩展标记”以示区别。

下面是一个例子:

(1) 双方交互:S是服务器,C是客户。

S: <等待连接在TCP端口25>

C: <连接到服务器>

S: 220 dbc.mtview.ca.us SMTP service ready

C: EHLO ymir.claremont.edu

S: 250 dbc.mtview.ca.us says hello

...

 

(2) 下面也是一个例子:

S: <等待连接在TCP端口25>

C: <连接到服务器>

S: 220 dbc.mtview.ca.us SMTP service ready

C: EHLO ymir.claremont.edu

S: 250-dbc.mtview.ca.us says hello

S: 250-EXPN

S: 250-HELP

S: 250-8BITMIME

S: 250-XONE

S: 250 XVRB

...

 

这说明服务器实现了服务扩展EXPN和HELP,这两个是标准的服务扩展,另外两个以X开头的是非标准的。

 

(3) 最后,我们来看看服务器不支持服务扩展时的情况:

S: <等待连接在TCP端口25>

C: <连接到服务器>

S: 220 dbc.mtview.ca.us SMTP service ready

C: EHLO ymir.claremont.edu

S: 500 Command not recognized: EHLO

...

代码500表示服务器不支持服务扩展。

标签:smtp,服务,命令
0
投稿

猜你喜欢

  • 主流WEB服务器比较(6)

    2010-04-23 18:27:00
  • 微软正式发布IE9

    2011-03-17 16:09:00
  • Linux中文本处理工具之cut命令详解

    2023-10-15 08:24:35
  • 在serv-u中隐藏你的帐号

    2007-10-18 13:47:00
  • 关于ftp服务程序中不安全因素研究

    2007-09-07 13:37:00
  • 从网站内部结构着手 谈音乐网站怎么做SEO

    2009-02-02 16:20:00
  • 就爱车总结了换链接的一些要点

    2009-08-23 11:10:00
  • 虚拟机中ubuntu不能联网问题的解决方法

    2023-09-12 21:54:09
  • 分页实现方法的性能比较

    2007-06-24 12:41:00
  • Linux和Solaris建Apache虚拟根环境二

    2010-05-08 18:04:00
  • 被百度K站的十大诱因

    2007-11-04 18:42:00
  • 提高IIS网站服务器执行效率的第八种方法:

    2012-01-29 17:56:07
  • 江礼坤:如何通过网站树立品牌形象

    2009-11-09 09:39:00
  • 浅谈Linux C语言动态库及静态库

    2023-08-06 07:21:54
  • GoDaddy:如何使用File Manager上传文件

    2010-05-01 12:53:00
  • FTP服务中允许上传权限存在的问题

    2009-02-09 16:43:00
  • ASP木马Webshell安全解决办案

    2007-09-14 10:53:00
  • Windows10安装Apache2.4的方法步骤

    2021-01-03 16:02:53
  • FreeBSD下构建安全的Web服务器(2)

    2007-09-14 14:19:00
  • RedHat7.2下Apache与Tomcat4整合实例

    2010-05-16 18:10:00
  • asp之家 网站运营 m.aspxhome.com