SMTP 命令
SMTP 命令包括:
HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAIL FROM 命令中指定的地址是发件人地址
RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。
DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应 OK
RSET 重置会话,当前传输被取消
QUIT 结束会话
*******************************************************************************
例如:连接sohu邮件服务器(蓝色字体内容由客户端输入,红色字体内容是服务返回的)
C:\Documentsand Settings\Administrator>telnet smtp.sohu.com 25---------连接服务器 25 端口
220 zwwww03 ESMTP ready ---------服务器响应
helo yangtao ---------向服务器标识用户身份,发信不要认证
250 zwwww03 ---------服务器对标识用户身份的响应
【ehlo haha 】 ---------ESMTP命令,发信需要认证。
【250-zwwww01 】
【250 AUTH PLAIN LOGIN】
auth login ---------进行用户身份认证
334 VXNlcm5hbWU6 ---------服务器响应:VXNlcm5hbWU6解码后为“username:”
aGFoYXl0YW9Ac29odS5jb20= ---------经过base64编码的用户名
334 UGFzc3dvcmQ6 ---------服务器响应:UGFzc3dvcmQ6解码后为“password:”
eWFuZzEyMjg= ---------经过base64编码的密码
235 2.0.0 OK ---------身份认证成功
【535 5.7.0 Invalidlogin or password】---------身份认证失败
mail from:
250 2.1.0 Ok ---------命令执行成功
rcpt to:<[email protected] > ---------递送给地址[email protected]真实。
250 2.1.5 Ok ---------命令执行成功
data ---------数据传输初始化
354 End data with
from:[email protected] ---------输入邮件发送人,可欺骗
to:[email protected] ---------输入邮件接收人
date:Mon, 25 Oct 2004 14:24:27 +0800 ---------输入邮件时间
Subject: test mail ---------输入邮件主题
---------空一行输入邮件正文
HelloWorld! ---------输入邮件正文内容
Hhhh
. ---------以“.”结束数据传输
250 2.0.0 Ok: queued as 3C8CF699F8D ---------命令执行成功
Quit ---------断开和服务器的连接
221 2.0.0 Bye ---------服务器返回断开响应
失去了跟主机的连接。
C:\Documentsand Settings\Administrator>
*******************************************************************************
auth=loginplain意思是认证方式包括login和plain方式
一般的邮件客户端都使用login方式认证,netscape的使用plain认证方式。
另外还有md5等认证方式,
login认证的时候,为了防止用户名和密码明文传输,使用base64加密传输的信息
*******************************************************************************
连接 快速邮(Ksemail)邮件系统 使用SMTP 命令发送邮件
例如:安装 快速邮(Ksemail)邮件系统 的邮件服务器IP是172.16.10.254 (蓝色字体内容由客户端输入,红色字体内容是服务返回的)
telnet172.16.10.254 25 --------------------------------------- 使用 telnet 命令连接服务器 25 端口
Trying172.16.10.254 ... --------------------------------------- 正在连接服务器 25 端口
Connectedto 172.16.10.254 . ----------------------------------- 连接服务器 25 端口成功
220ksemail.com Ksemail Mail Server 5.2 Build 041201 (Database-MySQL) ESMTP Ready.http://www.ksemail.com ------------------------ 显示服务器的标识名称
heloksemail.com ------------------------------------------------ 向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 命令
250ksemail.com
ehloksemail.com ------------------------------------------------ ESMTP 命令,发信需要认证。
250-ksemail.com
250-PIPELINING
250-AUTH=LOGINPLAIN
250-AUTHLOGIN PLAIN
250-SIZE20480000
2508BITMIME
authlogin ------------------------------------------------- 进行用户身份认证
334VXNlagffdfcmdf5hbWU6
Ysdf29zdGFAsdfYW1hedfsadfGl0Lm5ldA==----------------------------------- BASE64 加密后的用户名
334UaGFzac3asdfdvcmQ6
aMdTk4adfMadfadfjIxNA==----------------------------------------------- BASE64 加密后的密码
235 authsuccessfully -------------------------------------- 身份认证成功
(535 authfailure ------------------------------------------ 身份认证失败)
发到本系统中域名下的账户可跳过身份认证。
mailfrom: ------------------------------ mail from 地址[email protected]
250 ok----------------------------------------------------- 命令执行成功
rcpt to:-------------------------------- 递送给地址[email protected]
250 ok----------------------------------------------------- 命令执行成功
data------------------------------------------------------- 数据传输初始化
354 goahead ----------------------------------------------- 开始传输数据
From:[email protected]
Date:Mon, 25 Oct 2004 14:24:27 +0800
Subject:test mail
Hi, test2
This is atest mail, you don't reply it.
.
------------------------------------------------------------数据内容,包括BASE64加密后的邮件内容, 以CRLF.CRLF 结束数据传输
250 okmessage accepted for delivery ----------------------- 命令执行成功
quit------------------------------------------------------- 结束会话
221Ok,close
Connectionclosed by foreign host .------------------------- 断开连接