linux 自动发邮件脚本 SMTP协议:使用telnet发邮件【纯纯小白】
下周开始要给学生讲网络协议,那自己先得学会。
为了更好地理解SMTP协议,我进行了使用telnet命令发送邮件的体验,这也是我第一次学习使用telnet命令。
收到了很多次错误响应码后,终于成功了。下面将正确的过程分享出来:
一、准备工作:打开telnet服务
控制面板—程序—程序和功能—启用或关闭Windows功能—勾选Telnet客户端
二、准备工作:邮箱设置和信息转码
我使用的是163邮箱,设置—POP3/SMTP/IMAP—开启服务—授权密码管理—新增授权密码—手机扫码发送短信—将授权码复制出来保留好
将发件人的邮箱地址和刚才复制出来的授权码都进行base64编码卡盟,网上有在线工具,这里我用了python
import base64
print(base64.b64encode(b'你的邮箱地址') )
print(base64.b64encode(b'你的邮箱授权码') )
然后把两个结果保存好linux 自动发邮件脚本,一会儿需要直接复制粘贴
三、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都试了,结果一样呀,折腾了半天,不知道咋回事突然有一次就成功了,后来再也没失败过,不懂……
如果有大佬知道原因linux 自动发邮件脚本,求告知~
最后祝大家全都250 Mail OK
221 Bye~
来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!