2010年02月3日
之前有文说过smtp协议的详解,下面这段是泥人整理过的。通常你可以使用抓包工具来在服务器上侦听25端口,可以分析出这些内容了。以下的内容是一方和另一方服务器之间的SMTP通信内容,而不同于之前介绍的smtp命令详解中的,上一文主要是客户端软件和服务器之间的连接内容。
new message[] 开始发信
bytes 1174 from aaa@abc.com.cn 发信人
starting delivery: to remote bbb@gmail.com 收信人
deliver to remote server 209.85.199.27 收信方邮件服务器地址
[<--]: 220 mx.google.com ESMTP f21si17539450rvb.0 以下是smtp通信的命令交互
[-->]: EHLO 163xmail.com
[<--]: 250-mx.google.com at your service, [218.71.143.71]
[<--]: 250-SIZE 28311552
[<--]: 250-8BITMIME
[<--]: 250 ENHANCEDSTATUSCODES
[-->]: MAIL FROM: <aaa@abc.com.cn>
[<--]: 250 2.1.0 OK
[-->]: RCPT TO: <bbb@gmail.com>
[<--]: 250 2.1.5 OK
[-->]: DATA
[<--]: 354 Go ahead
[***]: Transporting message (1174 bytes)
………………………………………内容省略!太多了
[***]: Finished transport
[<--]: 250 2.0.0 OK 1213147225 f21si17539450rvb.0
[—>]: QUIT 完成
delivery success 递交成功
end message[] 结束
如果递交不成功会有错误的.像下面这个.就会收到退信.如果你设了中继第一次递交不成功后会有个中继再递交的动作.如果成功就会是成功的.如
果还不成功则会退信.
[***]: Transporting message (76260 bytes)
[***]: Finished transport
[<--]: 550 Error: content rejected.http://mail.qq.com/zh_CN/help/content/rejectedmail.html 这里将是你在退信的邮件中看的重要内容。其他内容为你所在的邮件系统自动生成的。
[-->]: QUIT
欢迎使用SMTP小工具来学习点这里下载smtp测试小工具。
2009年09月23日
smtp tool
对于很多网管来说,如果都用CMD去测试可能不太方便而且大家也不知道SMTP的命令.特别是做用户认证时的加密我们不可能手动或者用脑袋去想,那如何是好?怎么测试SMTP呢?总不能老是打开OUTLOOK吧!那也太累了.
所以下面这个小软件,绝对是好东东.当然初用起来可能还是不怎么样.不过用久了就习惯了吧…
先来看看它的界面.
软件有两种语言:德语和英语!为了方便自己测试查看.这个在测试时一定先打开右侧的start recording!
要连接的server:是要测试的连接服务器.端口是SMTP的端口默认是25.如果你的SMTP有更改就需要注意啦!
然后主要的Commands就是SMTP的全部的命令了.有些是要加密才行的.比如AUTH LOGIN之后传输的用户名和密码就密码要.以下是示例:如图
看到左边的记录是服务器反回的,右边是自己发到服务器上的命令.
看起来是不是很简单很有意思?
有了这个工具大家要测试服务器是否正常.用户是否可用就很容易啦.也很方便了.
当然要测试还是要知道上面那些个Commands的用法啊什么意思.所以啊.要先看看我之前的日志:
SMTP命令详解
下面给出SMTP测试工具"SMTPTOOL"的下载地址:
http://dl.getdropbox.com/u/1165534/soft/SMTPTool.exe
2009年05月31日
本测试使用magicwinmail完成.通常情况下.我们都在使用telnet serverIP 25来测试是否可以正常收发信.当然如果你要用这个方式来发信也是可以的.所有邮件收发软件都使用这一标准来和服务器联系发送邮件.
什么是 SMTP
SMTP (Simple Mail Transfer Protocol) : 电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。 SMTP 是请求/响应协议,命令和响应都是基于 ASCII 文本,并以 CR 和 LF 符结束。响应包括一个表示返回状态的三位数字代码。SMTP 在 TCP 协议 25 端口监听连接请求。
什么是 ESMTP
ESMTP (Extended SMTP),顾名思义,扩展 SMTP 就是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时, 服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与 SMTP 方式没有两样。
SMTP 命令
SMTP 命令包括:
HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAIL FROM 命令中指定的地址是发件人地址
RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。
DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应 OK
RSET 重置会话,当前传输被取消
QUIT 结束会话
连接 Winmail Server 使用 SMTP 命令发送邮件
例如:安装 Winmail 的邮件服务器IP是192.168.0.1 (蓝色字体内容由客户端输入,红色字体内容是服务返回的)
telnet 192.168.0.1 25 ———————— 使用 telnet 命令连接服务器 25 端口
Trying 192.168.0.1… ——————————– 正在连接服务器 25 端口
Connected to 192.168.0.1. —————————— 连接服务器 25 端口成功
220 Winmail Mail Server ESMTP ready ————————- 显示服务器的标识名称 (Winmail 管理工具->高级设置->系统参数->基本参数中可更改)
helo cnu.com ———————————————— 向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 命令
250 Winmail Mail Server
ehlo cnu.com ————————————— ESMTP 命令,发信需要认证。
250-Winmail Mail Server
250-PIPELINING
250-AUTH=LOGIN PLAIN
250-AUTH LOGIN PLAIN
250-SIZE 20480000
250 8BITMIME
auth login ————————————————- 进行用户身份认证
334 VXNlcm5hbWU6
Y29zdGFAYW1heGl0Lm5ldA== —————————- BASE64 加密后的用户名
334 UGFzc3dvcmQ6
MTk4MjIxNA== ——————————————- BASE64 加密后的密码
235 auth successfully ————————————– 身份认证成功
(535 auth failure —————————————— 身份认证失败)
发到本系统中域名下的账户可跳过身份认证。
mail from: <test1@domain.com> —————————— mail from 地址 test1@domain.com
250 ok —————————————————– 命令执行成功
rcpt to: <test2@domain.com> ——————————– 递送给地址 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 Winmail Mail Server
Connection closed by foreign host .————————- 断开连接
如果想了解更详细可以链接到smtp命令详解2,以及使用SMTP小工具来学习点这里下载smtp测试小工具。