Hunter的大杂烩 技术学习笔记

November 21, 2012

ESMTP记录

Filed under: 技术话题 — hunter @ 7:20 pm

http://www.rosoo.net/a/201106/14594.html

3.2.  ESMTP

ESMTP最显著的地方是添加了用户认证功能。如果用户想使用ESMTP提供的新命令,则在初次与服务器交互时,发送的命令应该是EHLO而不是HELO。先来看一个例子。

C:telnet smtp.126.com 25   /* 以telnet方式连接126邮件服务器 */

S:220 126.com Anti-spam GT for Coremail System (126com[071018]) /* 220为响应数字,其后的为欢迎信息,会应服务器不同而不同*/

C:EHLO smtp.126.com /* 除了HELO所具有的功能外,EHLO主要用来查询服务器支持的扩充功能 */

S:250-mail

S:250-AUTH LOGIN PLAIN

S:250-AUTH=LOGIN PLAIN

S:250 8BITMIME /* 最后一个响应数字应答码之后跟的是一个空格,而不是’-‘ */

C:AUTH LOGIN /* 请求认证 */

S:334 dxNlcm5hbWU6  /* 服务器的响应——经过base64编码了的“Username” */

C:Y29zdGFAYW1heGl0Lm5ldA==  /* 发送经过BASE64编码了的用户名 */

S:334 UGFzc3dvcmQ6  /* 经过BASE64编码了的”Password:” */

C:MTk4MjIxNA==  /* 客户端发送的经过BASE64编码了的密码 */

S:235 auth successfully /* 认证成功 */

C: MAIL FROM: bripengandre@126.com /* 发送者邮箱 */

S:250 … ./* “…”代表省略了一些可读信息 */

C:RCPT TO: bripengandre@smail.hust.edu.cn /* 接收者邮箱 */

S:250 … ./* “…”代表省略了一些可读信息 */

C:DATA  /* 请求发送数据 */

S:354 Enter mail, end with “.” on a line by itself

C:Enjoy Protocol Studing

C:.

S:250 Message sent

C:QUIT /* 退出连接 */

S:221 Bye

对于这个例子有如下几点说明。

1)        只是一个示意性的过程,再输入用户名、密码时需采用base64编码,这需要专门的计算,所以在telnet终端上模拟比较麻烦。

2)        认证过程有很多种,有基于明文的认证,也有基于MD5加密的认证,这里给出的只是一个示意性的过程。

3)        EHLO对于具体服务器,响应会不同,关键字“8BITMIME”用来说明服务器是否支持正文中传送8位ASCII码,而以“X”开头的关键字都是指服务器自定义的扩充(还没纳入RFC标准)

更详细的说明,请参看RFC1425。

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress