最近在上计算机网络的应用层,老师上课的时候在课堂上演示用telnet结果失败了,课下自己捣鼓了半天,终于弄出来,其中不乏很多百度,谷歌的东西,总结如下吧。
首先电脑确定装了telnet,我用的win 7系统,有可能有的人的电脑可能没有装,没装的去百度谷歌一下就知道了。cmd打开命令行,输入telnet进入telnet界面.
输入?/help可以看到我们有许多选项,这里我们要选择连接到主机,也就是o(open的意思),因为我们这里做的是邮件的发送,现在的邮件一般都是遵循SMTP协议,端口号是25,所以输入:
这里我要用qq邮箱进行发送邮件,所以要连接到qq的邮件服务器,如果你想用163的邮箱,改为smtp.163.com 25,其他的邮件服务器类似。
这里有几个SMTP的命令要介绍:
Command | Describe | Reply Code |
---|---|---|
HELO message | 像服务器打招呼 | 250 |
MAIL FROM: <host> | 在主机上初始化一个会话 | 250 |
RCPT TO: <user> | 指明收件方 | 250 |
QUIT | 终止邮件会话 | 221 |
DATA | 开始信息写作 | 354 |
AUTH LOGIN | 确认登陆信息(需要base64编码用户名和密码) | 334 VXNlcm5hbWU6 334 UGFzc3dvcmQ6 |
下面就可以进行试验了。
一、首先输入HELO跟服务器打个招呼:
helo test
返回 250 smtp.qq.com
二、输入auth login输入账号和密码
这里有一个网站是base64加解密的:加解密
输入auth login后服务器会返回:334 VXNlcm5hbWU6 输入用户名的base64编码
接着服务器返回:334 UGFzc3dvcmQ6 输入密码的base64编码
这时候有可能返回一个结果如下:454 Authentication failed, please open smtp flag first!
这是由于自己qq邮箱没有打开SMTP服务的缘故,如果此时有挂着QQ的话,应该会受到一封邮件,表示要去邮箱里面进行设置。在邮箱设置里面账户选项上
POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 勾选前两项即可。
三、输入mail from: <abcdefghi@qq.com>
返回250
四、输入rcpt to:<abcdefghi@163.com>
返回250
(注意上面两步有时候会报格式错误,去掉尖括号即可,不知道为啥有时候要尖括号,有时候不要)
五、输入data,进行输入主题文字
键入以下命令以添加主题行:
Subject: test message
然后按两次 Enter 键。
该命令看不到任何响应。备注: 两个 Enter 命令符合 RFC 822 规则,即 822 命令后必须跟空行。
键入以下命令来添加邮件正文:
This is a test message
您将看不到来自该命令的响应。
在紧接着的空行处键入句号,然后按 ENTER 键。
您应看到如下响应:250 OK
六、输入quit命令
收到如下回应:221 closing connection
至此,大功告成,可以去邮箱查看已发邮件和已收邮件,关于更多smtp的命令,网上有很多,这里只是一个简单的发送邮件例子,因为折腾比较久。这里还有一篇百度经验的文章也挺有用的,可以作为参考怎样使用telnet发中文邮件