SMTP 命令
SMTP 命令包括:
HELO 向服务器标识用户身份.发送者能欺骗,说谎,但一般情况下服务器都能检测到.
EHLO 向服务器标识用户身份.发送者能欺骗,说谎,但一般情况下服务器都能检测到.
MAIL FROM 命令中指定的地址是发件人地址
RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面.
DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输, 以 CRLF.CRLF 结束
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应 OK
RSET 重置会话,当前传输被取消
QUIT 结束会话
*******************************************************************************
例如:连接 sohu 邮件服务器(蓝色字体内容由客户端输入,红色字体内容是服务返回的)
C:/Documents and 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 Invalid login or password】 ---------身份认证失败
mail from:<hahaytao@sohu.com> ---------mail from 地址 hahaytao@sohu.com 真实.
250 2.1.0 Ok ---------命令执行成功
rcpt to:<459716379@qq.com> ---------递送给地址 459716379@qq.com 真实.
250 2.1.5 Ok ---------命令执行成功
data ---------数据传输初始化
354 End data with <CR><LF>.<CR><LF> ---------服务器响应,提示数据输入以"."结束
from:haha@haha.com ---------输入邮件发送人,可欺骗
to:459716379@qq.com ---------输入邮件接收人
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:/Documents and Settings/Administrator>
*******************************************************************************
auth=login plain 意思是认证方式包括 login 和 plain 方式
一般的邮件客户端都使用 login 方式认证,netscape 的使用 plain 认证方式.
另外还有 md5 等认证方式,
login 认证的时候,为了防止用户名和密码明文传输,使用 base64 加密传输的信息 *******************************************************************************
连接 快速邮(Ksemail) 邮件系统 使用 SMTP 命令发送邮件
例如:安装 快速邮(Ksemail) 邮件系统 的邮件服务器 IP 是 172.16.10.254 (蓝色字体内容 由客户端输入,红色字体内容是服务返回的)
telnet 172.16.10.254 25 --------------------------------------- 使用 telnet 命令连接服务器 25 端口
Trying 172.16.10.254 ... --------------------------------------- 正在连接服务器 25 端口
Connected to 172.16.10.254 . ----------------------------------- 连接服务器 25 端口成功
220 ksemail.com Ksemail Mail Server 5.2 Build 041201 (Database-MySQL) ESMTP Ready.
http://www.ksemail.com ------------------------ 显示服务器的标识名称
helo ksemail.com ------------------------------------------------ 向服务器标识用户身份, 发信不要认 证,跳过下面几步直接发送 mail from 命令
250 ksemail.com
ehlo ksemail.com ------------------------------------------------ ESMTP 命令,发信需要认证.
250-ksemail.com
250-PIPELINING
250-AUTH=LOGIN PLAIN
250-AUTH LOGIN PLAIN
250-SIZE 20480000
250 8BITMIME
auth login ------------------------------------------------- 进行用户身份认证
334 VXNlagffdfcmdf5hbWU6
Ysdf29zdGFAsdfYW1hedfsadfGl0Lm5ldA== ----------------------------------- BASE64 加密后的 用户名
334 UaGFzac3asdfdvcmQ6
aMdTk4adfMadfadfjIxNA== ----------------------------------------------- BASE64 加密后的密码
235 auth successfully -------------------------------------- 身份认证成功
(535 auth failure ------------------------------------------ 身份认证失败)
发到本系统中域名下的账户可跳过身份认证.
mail from: ------------------------------ mail from 地址 test1@domain.com
250 ok ----------------------------------------------------- 命令执行成功
rcpt to: -------------------------------- 递送给地址 test2@domain.com
250 ok ----------------------------------------------------- 命令执行成功
data ------------------------------------------------------- 数据传输初始化
354 go ahead ----------------------------------------------- 开始传输数据
From: test1@domain.com
To: test2@domain.com
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
Hi, test2 This is a test mail, you don't reply it.
.
------------------------------------------------------------ 数据内容,包括 BASE64 加密后的邮件内容, 以 CRLF.CRLF 结束数据传输
250 ok message accepted for delivery ----------------------- 命令执行成功
quit ------------------------------------------------------- 结束会话
221 Ok,close Connection closed by foreign host .------------------------- 断开连接