明天就要去学校了。。有点不舍,本来今天就要去的,因为玉林到合肥有票了,就改签到明天,因为学生票还省下了 100。。。
废话不多说,这几天在学《计算机网络》,发现 telnet
其实是个很万能的东西,我曾对它的印象仅仅停留在远程控制,那时候在机房叫老师打开机房的网络,老师在 cmd
就用 telnet
远程控制来打开网络。
比如用 telnet
发送邮件,就可以深刻理解协议的含义:语义 、 语法 和时序 ,以后socket
编程的时候就知道怎么设计协议了,其实和设计指令差不多。
因为 QQ 邮箱 加密传输了,不好测试,这里用 139 移动邮箱 发送到 QQ 邮箱 来测试。
注意退出 telnet
的话,先按 CTRL+J
,然后输入quit
即可退出。
base64
加密的话:
echo -n 待加密的内容 | base64
先看看发送图(smtp
):
再来看看收邮件的(pop3
):
✘ ~/WorkSpace/Netcan_Web/blog/source/Timeline telnet pop.139.com 110
Trying 221.176.9.169...
Connected to pop.mail.10086.cn.
Escape character is '^]'.
+OK richmail system v10(32d256c7d202533-1a2ff)
USER netcan
+OK
PASS xxxxxx
+OK login success
LIST
+OK
1 11481
2 20476
3 22995
4 17824
5 16520
6 48992
7 50115
8 51141
9 50336
10 18149
11 51062
12 12116
13 20278
14 26734
15 51260
16 21147
17 51499
18 11584
19 20796
20 12594
21 52576
22 16798
.
RETR 1
+OK
Received:from mail139@139.com (unknown[172.16.202.6])
by rmoda-17132 (RichMail) with ODA id 42ec5409b9d04b8-050cc;
Fri, 05 Sep 2014 21:25:36 +0800 (CST)
X-RM-TRANSID:42ec5409b9d04b8-050cc
From: =?gb2312?B?1tC5+tLGtq8xMznTys/k?= <mail139@139.com>
Message-ID: <744425079.27371409923191498.JavaMail.hadoop@q201-o06-9>
Subject: =?GB2312?B?1tC5+tLGtq/M4dDRo7rH68T6udjXorG+u/q6xQ==?=
=?GB2312?B?wuu1scewu7C30dPgtu6jrM/qx+nH67Xju/ey6b+0?=
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_Part_2737_1393666244.1409923191496"
X-RICHINFO:CATEGORY:4326;PRODUCTOPERATIONMAIL:2001;SELFCLOSED:1;M:;TEMPLATELIST:2_4;MAILORDERID:141956;NOTIFYTYPE:14;ISMULTITEMPLATE:1;BUSSINESSID:1443;MJ:0;ISWAPNOTIFY:0;CHANNEL:30
X-TDZXINFO: ODACHANNEL:30;ODACATEGORY:4326
X-OP_RICHINFO_MAILTYPE:0
Date:
To:netcan
------=_Part_2737_1393666244.1409923191496
Content-Type: text/plain;charset="gbk"
Content-Transfer-Encoding: base64
oaHX8L60tcS/zbuno7pbsunT4LbuXWh0dHA6Ly93YXBtYWlsLjEwMDg2LmNuL2ahoQqhoczh0NHE
+qO6yta7+sno1sNDTVdBUL3TyOuju8H3wb+wtNbQufrSxravR1BSU7Hq17y8xsvjoaMKCQkJCQkJ
CQkKCQkJCQkJCQkKCQkJCQkJCQkKCQkJCQkJCQkKCQkJCQkJCQkKCQkJCQkJICAJIAkgCgkJCgkJ
CQkJCQkJCgkJCQkJCgkJCQkJCQkJCiAJCQkJCQkgICAJIAogICAgICAgICAJCQo=
------=_Part_2737_1393666244.1409923191496
Content-Type: text/html;charset="gbk"
Content-Transfer-Encoding: base64
PGh0bWw+PGhlYWQ+PHRpdGxlPqGhPC90aXRsZT48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1nYjIzMTIiLz48L2hlYWQ+PGJvZHkgYmdj
b2xvcj0iI0ZGRkZGRiIgbGVmdG1hcmdpbj0iMCIgdG9wbWFyZ2luPSIwIiBtYXJnaW53aWR0aD0i
MCIgbWFyZ2luaGVpZ2h0PSIwIj48c3BhbiBzdHlsZT0iIGZvbnQ6MHB4LzBweCAny87M5Sc7IGRp
c3BsYXk6bm9uZTsiPtfwvrS1xL/Nu6ejuluy6dPgtu5dPGEgaHJlZj0iaHR0cDovL3dhcG1haWwu
MTAwODYuY24vZiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly93YXBtYWlsLjEwMDg2LmNuL2ahoTwv
YT48YnIvPqGhzOHQ0cT6o7rK1rv6yejWw0NNV0FQvdPI66O7wffBv7C01tC5+tLGtq9HUFJTserX
vLzGy+Ohozxici8+PC9zcGFuPjx0YWJsZSB3aWR0aD0iNzgwIiBib3JkZXI9IjAiIGFsaWduPSJj
ZW50ZXIiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgaWQ9Il9fMDEiIHN0eWxlPSJi
b3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IHdpZHRoOjc4MHB4OyBib3JkZXItc3BhY2luZzowO3Bh
ZGRpbmc6MDsgbWFyZ2luOjAgYXV0bzsiPjx0cj48dGQ+CQkJPGltZyBzcmM9Imh0dHA6Ly9mdW4u
bWFpbC4xMDA4Ni5jbi9jbi8xNDA3LzA4MjIvaW1hZ2VzL2luZGV4XzAxLmpwZyIgd2lkdGg9Ijc4
MCIgaGVpZ2h0PSI4OCIgYWx0PSIiIGJvcmRlcj0iMCIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ii8+
PC90ZD4JPC90cj48dHI+PHRkPgkJCTxpbWcgc3JjPSJodHRwOi8vZnVuLm1haWwuMTAwODYuY24v
Y24vMTQwNy8wODIyL2ltYWdlcy9pbmRleF8wMi5qcGciIHdpZHRoPSI3ODAiIGhlaWdodD0iMTA3
IiBhbHQ9IiIgYm9yZGVyPSIwIiBzdHlsZT0iZGlzcGxheTpibG9jazsiLz48L3RkPgk8L3RyPjx0
cj48dGQ+CQkJPGltZyBzcmM9Imh0dHA6Ly9mdW4ubWFpbC4xMDA4Ni5jbi9jbi8xNDA3LzA4MjIv
aW1hZ2VzL2luZGV4XzAzLmpwZyIgd2lkdGg9Ijc4MCIgaGVpZ2h0PSI4MiIgYWx0PSIiIGJvcmRl
cj0iMCIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ii8+PC90ZD4JPC90cj48dHI+PHRkPgkJCTxpbWcg
------=_Part_2737_1393666244.1409923191496--
.
下面是步骤:
发邮件
- 使用
telnet SMTP 地址 端口
连接 - 发送
HELO 邮箱服务器名称
- 发送
AUTH LOGIN
进行登陆,第一次输入的是base64
加密过的用户名,第二次是base64
加密过的密码。 - 发送
MAIL FROM: <xxx@xx.com>
准备发邮件 - 发送
RCPT TO: <xx@xx.com>
指定目标邮箱地址 - 发送
DATA
开始输入邮件内容,一行用.
结束。 - 发送
QUIT
退出
收邮件
- 使用
telnet POP3 地址 端口
连接 - 发送
USER 用户名
进行登陆 - 发送
PASS 密码
确定登陆 - 发送
LIST
查看邮件列表 - 发送
RETR 编号
查看邮件信息 - 发送
DELE 编号
删除邮件 - 发送
QUIT
退出