SMTP服务扩展
来源:asp之家 发布时间:2010-03-16 18:48:00
SMTP提供一种可靠的有效的传送机制,它用于传送电子邮件。虽然十几年来,它的作用已经有目共睹,可是对它功能的扩充也是必不可少的。对SMTP服务的扩展我们介绍一下:在SMTP转发的邮件中包括信封和内容这两种东西。我们写信也写信封和信皮,我们可以借生活中的信件来帮助理解。
(1)SMTP信封比较容易理解,它被作为一系列的SMTP协议单元传送,它包括发送者地址,传送模式,还有一个或多个接收者地址。如果有不清楚的地方,请参阅《SMTP协议标准》。
(2)至于内容,它是由两部分组成的,一部分是信头,一部分是信体,信头是由一个个的域/值对(一个域,一个值)组成的,如果信体有结构的话,它的结构是以MIME构造的。内容从根本上来说是文本的,一般也是由ASCII码构成的,但是由于使用了MIME,所以这个限制应该也是没有了,但信头却不行,一般都应该使用ASCII码表示。虽然SMTP协议是一个不错的协议,可是对它的扩展还是不可避免,本文主要说明了一种扩展方法,使用这种扩展方法,服务器和用户之间可以相互知道对方使用了扩展,使用了多少,如果进行通信。
这里我们希望让大家知道网络协议中的一个经验:参数越多,死得越快;参数越少,越能持久。参数太多了,根本不利于使用,无法推广,早晚会被别的协议取代。这也符合科学的基础原理,简单。这说明在实现时一定要小心,如果不小心会便得到的远远小于付出的,有时根本不能提供任何益处。
下面我们看一下EHLO命令,支持SMTP服务扩展的客户应该以EHLO命令开始SMTP会话,而不是通常的HELO命令。如果服务器也支持,那就返回确认响应,如果不支持就返回失败响应。因为引入了EHLO命令,因此会话开始的第一条命令可以是HELO或EHLO。
因此引入了新的参数,所以SMTP的MAILFROM和RCPTTO命令行长度也能再是512字节了,但是引入新参数的长度必须加以说明,以便实现者准备缓冲区。
命令格式如下:
ehlo-cmd ::= "EHLO" SP domain CR LF
在命令成功是,服务器返回代码250,如果失败返回代码550,如果出错,返回500,501,502,504或421。对比《SMTP协议标准》,EHLO命令可以出现在任何HELO命令出现的地方,在成功发送一个HELO或EHLO命令后再次发送它会使服务器返回503。客户这时不能缓存服务器返回的任何信息。这里一定要注意的是,每次开始SMTP扩展服务会话的时候必须发送EHLO命令。如果服务器能够处理EHLO命令,它会返回代码250。这样,服务器和客户就处于初始状态了,也就是说,所有的状态表和缓冲区已经准备完毕。通常这种响应是多行的,每行响应包括一个关键字,如果有的话,还有一个或多个参数,响应的语法如下:
ehlo-ok-rsp ::= "250" domain [ SP greeting ] CR LF
/ ( "250-" domain [ SP greeting ] CR LF
*( "250-" ehlo-line CR LF )
"250" SP ehlo-line CR LF )
greeting ::= 1*<除了CR 或LF的所有字符>
ehlo-line ::= ehlo-keyword *( SP ehlo-param )
ehlo-keyword ::= (字母/数字) *(字母/数字/"-")
ehlo-param ::= 1*<随了空格和控制字符外的字符>
ALPHA ::= <大写A到Z,小写A到Z>
DIGIT ::= <0到9>
CR ::= <回车,ASCII码13>
LF ::= <换行,ASCII码10>
SP ::= <空格,ASCII码32>
虽然EHLO关键字可以是大写,小写,大小写混合的,但是对它的处理是大小写敏感的,这是与原来规定不同的。IANA支持SMTP服务扩展注册,相对于每个扩展都有一个相应的EHLO关键字值,每个在IANA注册的服务扩展必须在一个RFC中定义。如果一个关键字以X开头,它指的是这个服务扩展是双方约定的,不是标准的。


猜你喜欢
- UCenter Home 2.0后续版本持续改进创新已经成为广大站长密切关注的话题,为了让广大站长及时了解UCenter Home产品研发动
- 10月20日,2009中国数码产品网上零售峰会今天在北京举办,本次峰会主题是蓝天·碧海·数码新大陆,搜狐IT现场直播本次峰会。以下是阿里巴巴
- 小说站新手的经验,献给广大想作文学站的朋友,希望能有借鉴的作用。自从文学网站出现在互联网以来,这种新兴的文学形式很快就风靡了整个世界。网络小
- 今天早上发现IIS无法启动,报错:发生意外错误0x8ffe2740.然后在IIS上就出现了一个红色的“Error&
- Phpwind的7.3正式版推出了圈子的概念, 在看了具体应用后,发现他还是利用目前十分热门的SNS概念将一群人圈在了一起。装完论坛之后,圈
- 1 背景知识1.1 什么是XSS攻击XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascadin
- 做淘宝客已经有半年时间了,但还是新手一个。开始并不知道淘宝客能赚钱,只是在自己的一个时尚女性网:www.iflady.cn 投放了一些自以为
- 我们很多时候在liunx系统上安装了web服务应用后(如tomcat、apache等),需要让其它电脑能访问到该应用,而linux系统(ce
- 谷歌于北京时间5月20日晚上10:30点在旧金山Moscone会展中心举办Google I/O 2010大会第二天的会议,Google正式发
- 外链是搜索优化的一件重磅武器,增加外链主要包括交换链接,论坛推广,博客推广三种,其他的像花钱买广告,挂马找肉鸡,一个是要花钱,一个要技术,其
- 套接字是一种通信机制,凭借这种机制,客户/服务器系统的开发工作既可以在本地单机上进行,也可以跨网络进行。套接字的特性有三个属性确定,它们是:
- 确保您的网站被谷歌收录(并且出现在搜索结果页)使用site: 操作符 [site:example.com] 检查搜索结果中的内容摘要和页面标
- V5shop网络联盟系统:网商应突破平台壁垒 盈利为王最近,一些具有忧患意识的独立网商经常通过邮件或QQ向笔者咨询,归纳一下,问题基本集中在
- 网站在搜索引擎中被K掉(处理),如网站首页搜索没有收录、网站收录被拔掉、排名下降、都是网站被K的现象。网站被K是广大站长最为头疼的事之一,总
- PHPWind v7.3.2“引用”的返回链接如果链接到主题部分出错。解决方法:打开job.php查找:} elseif 
- <script src="{dede:field name='phpurl'
- 自己参考那个自动生成文章html 写了个自动更新首页html的插件---不应该叫插件,叫做文件! 呵呵 很简单应用领域:对于向我这样,首页用
- “中国互联网还处在一个初级阶段,它作为媒体的潜力还没有完全释放出来,”腾讯网CEO马化腾昨天在接受记者采访时表示,他每天都需要保持诚惶诚恐的
- linux 任务管理-后台运行与终止fg、bg、jobs、&、ctrl + z命令一、 &加在一个命令的最后,可以把这个命令
- 或许当初连“开心农场”的开发团队“五分钟”也没有想到,一年之内一场热火朝天的全民“偷菜”运动正在全国兴起。农场游戏全面的流行造就了一个新兴的