SMTP协议:使用telnet发邮件【纯纯小白】

  • Post author:
  • Post category:其他


下周开始要给学生讲网络协议,那自己先得学会。

为了更好地理解SMTP协议,我进行了使用telnet命令发送邮件的体验,这也是我第一次学习使用telnet命令。

收到了很多次错误响应码后,终于成功了。下面将正确的过程分享出来:


一、准备工作:打开telnet服务

控制面板—程序—程序和功能—启用或关闭Windows功能—勾选Telnet客户端


二、准备工作:邮箱设置和信息转码

我使用的是163邮箱,设置—POP3/SMTP/IMAP—开启服务—授权密码管理—新增授权密码—手机扫码发送短信—将授权码复制出来保留好

将发件人的邮箱地址和刚才复制出来的授权码都进行base64编码,网上有在线工具,这里我用了python

import base64
print(base64.b64encode(b'你的邮箱地址') )
print(base64.b64encode(b'你的邮箱授权码') )

然后把两个结果保存好,一会儿需要直接复制粘贴


三、telnet发邮件

win+R—telnet,然后输入命令:

open smtp.163.com 25

然后依次输入命令:


HELO xxy


【收到响应】



AUTH LOGIN


【收到响应】


编码后的邮箱地址


【收到响应】



编码后的邮箱授权码


【收到响应】



MAIL FROM:<发件人邮箱地址>


【收到响应】



RCPT TO:<收件人邮箱地址>


【收到响应】



DATA


【收到响应】



To:收件人邮箱地址



From:发件人邮箱地址



Subject:邮件题目

这里空一行~


邮件内容

.


【收到响应】



QUIT


【收到响应】

如果都输入正确,那么你和服务器之间的对话应该如下图所示:


四、验证

验证方法当然是愉快地查收邮件成功啦


五、备注

我自己由于最开始不了解SMTP协议,也对于输入telnet命令行不熟悉,踩了很多坑

比如,HELO后面随便跟个啥都行,如果想有意义一点,那就写自己主机的名字就行

比如,信息头部行和消息体之间一定记得空行,不然邮件收到后识别不到内容

我还存在一些疑惑:

首先,我发现如果我输入过程中经常写错修改,就很容易收到错误响应码,很奇怪,所以建议细心点一次性写对吧[笑cry]

其次,最开始我输入邮箱授权码时总是收到535 Error: authentication failed(身份认证失败),我在网上搜了半天,有帖子说是因为base64编码错误,我用在线编码器和python都试了,结果一样呀,折腾了半天,不知道咋回事突然有一次就成功了,后来再也没失败过,不懂……

如果有大佬知道原因,求告知~

最后祝大家全都250 Mail OK

221 Bye~



版权声明:本文为kongkongruyou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。