telnet调试SMTP协议

来源:互联网 发布:python 开源运维工具 编辑:程序博客网 时间:2024/05/16 15:26

哭浪费了今天的大好时光,

书上轻轻带过FTP协议后,今天看到SMTP协议,

看着心痒,动手玩玩咯。

历经万苦部署好了环境后,

开始 telnet smtp.googlemail.com 25

谷歌很友好的回你一句,为你服务

接下来就头痛了,书上太古来了,现在的邮件都加密的

书上开始  HELO 对方  后

下面的方法就不行了,于是在网上寻求答案。


有的说谷歌的端口不是常用的邮件端25 ,更改了。

那就换个邮箱,搞126

telnet smtp.126.com 25

EHLO smtp.126.com//开始握手,注意这里不是HELO 而是EHLO

PS:ehlo是对helo的扩展,即extend helo,可以支持authorization,即用户认证

用ehlo申明,表示自己需要身份验证

auth login // 用这个命令表示身份验证开始

334 VXNlcm5hbWU6
// 这句是服务器返回的,是base64编码过的“user”


输入你的账号,记得是base64编码之后的


334 UGFzc3dvcmQ6
// 这句也是服务器返回的,是是base64编码过的“pass”

输入你的密码,记得是base64编码之后的


然后服务器提示我认证成功

于是指定接收人


mail from:<xueyoucd@gmail.com>

哦哦,本来想给我的谷歌邮箱弄点东西,结果你用126的就只能指定接收人为126的邮箱

由于时间不充足,暂时搁浅。

一下是百度收集转载而来,



======================开始SMTP发信操作==========================

[crazywill@localhost crazywill]$ telnet smtp.163.com 25              #telnet登录25端口
Trying 202.108.5.81...
Connected to smtp.163.com.
Escape character is '^]'.
220 163.com Coremail SMTP(Anti Spam) System
EHLO smtp.163.com                                                           # 握手 :)
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
AUTH LOGIN                                                                    # 开始认证登录
334 dXNlcm5hbWU6
crazywill
334 UGFzc3dvcmQ6
mypassword
535 Error: authentication failed                                       # 直接用户名密码不能登录
AUTH LOGIN
334 dXNlcm5hbWU6
Y3Jhenl3aWxs
334 UGFzc3dvcmQ6
bXlwYXNzd29yZA==
235 Authentication successful                                      # 使用Base64编码则成功登录
MAIL FROM:<test@163.com>                                     # 邮件发送方
553 You are not authorized to send mail, authentication is required          # 不可伪造发送邮件 
MAIL FROM:<crazywill@163.com>                            # 邮件发送方
250 Mail OK
RCPT TO:<crazywill@163.com>                                   # 邮件的接收方,若有多个收件人,则重复这一语句多次。
250 Mail OK
DATA                                                                               # 邮件体内容
354 Please start mail input.
TO: crazywill@163.com                                # 此处的TO,FROM,等内容,可以随便造假 :) 可以骗人但骗不了懂得查看邮件源码的。
FROM: cccc@163.com
SUBJECT: test by telnet/smtp 

test, just a test.                                             # 邮件正文内容,与Header部分空一行开始写
.                                                                       # 邮件写完,以一个句点加回车结果。
250 Mail OK queued as smtp10,wKjADQ2ApxRnnqBE0CWaEw==.38326S3                 # 返回250 表示发送成功。
NOOP                                                            # 空语句,不执行任何操作,一般用来保持和服务器连接,不要掉线
250 OK
QUIT                                                            # 退出
221 Closing connection. Good bye.
Connection closed by foreign host.
[crazywill@localhost crazywill]$ 


======================开始POP3收信操作==========================

[crazywill@localhost crazywill]$ telnet pop.163.com 110                #telnet登录110端口
Trying 202.108.5.104...
Connected to pop.163.com.
Escape character is '^]'.
+OK Welcome to coremail Mail Pop3 Server (163com[20050206])
USER crazywill                                                     # 用户名
+OK core mail
PASS mypassword                                             # 登录密码
+OK 254 message(s) [27676669 byte(s)]
STAT                                                                      # 查看邮箱状态
+OK 254 27676669
LIST                                                                         # 邮件列表
+OK 254 27676669
1 2468
2 21945
3 33136
4 2071
5 3364
6 18906
7 3136
8 24764
.................

TOP 254 0                                                    # 查看指定邮件的邮件头,0表示查看整个邮件头,其它正整数表示限制返回多少行。
+OK core mail
Received: from smtp.63.com (unknown [58.252.70.158])
        by smtp5 (Coremail) with SMTP id wKjREDrA9gIfFqlEjCnRAg==.29062S4;
        Mon, 03 Jul 2006 21:07:18 +0800 (CST)
TO: crazywill@163.com
FROM : cccc@163.com                                                   # 这里即前面发信时伪造的一个假发送人信息,平时正常操作只显示这个。
SUBJECT: test by telnet/smtp                                        # 邮件主题
Message-Id: <44A91687.0E6F6C.07562>
Date: Mon, 3 Jul 2006 21:07:19 +0800 (CST)
Sender: crazywill@163.com                                            # 这里是真正的发送人,不可伪造。


.
RETR 254                                                     # 获取指定邮件
+OK 354 octets
Received: from smtp.63.com (unknown [58.252.70.158])
        by smtp5 (Coremail) with SMTP id wKjREDrA9gIfFqlEjCnRAg==.29062S4;
        Mon, 03 Jul 2006 21:07:18 +0800 (CST)
TO: crazywill@163.com
FROM : cccc@163.com
SUBJECT: test by telnet/smtp
Message-Id: <44A91687.0E6F6C.07562>
Date: Mon, 3 Jul 2006 21:07:19 +0800 (CST)
Sender: crazywill@163.com

test, just a test.
.

DELE 254                                                       # 删除第254封邮件
+OK core mail
STAT                                                             # 查看邮箱状态
+OK 253 27676315
QUIT                                                              # 退出
+OK core mail
Connection closed by foreign host.
[crazywill@localhost crazywill]$ 


===============================================================

QUESTION:
如何发送给多人,如何CC,BCC?

ANSWER: (此答案由SnifferPro监听OUTLOOK发送多人邮件分析出来的)
同一封信发送/抄送给多人,在MAIL FROM:<...> 后,多次使用 RCPT TO:<...> 
每次一个邮件地址,需要发给多少人就 RCPT TO 多少次。

在DATA里面写的CC,BCC,TO,等信息只起显示作用,与实际发送人接收人无关。

CC与BCC的差别:同样都是RCPT TO指定收件人,但是邮件客户端程序,不会将BCC的收件人写到DATA要传送的数据里



---------------转载自:http://hi.baidu.com/dalianufo/item/82e36b3fcf3c89bd134b14f2

原创粉丝点击