杨记

碎片化学习令人焦虑,系统化学习使人进步

0%

telnet发送邮件

使用telnet向QQ邮箱发送邮件,SMTP协议

telnet发送邮件

  • 在电脑上开启telnet服务

    image-20220317112406777

  • 在QQ邮箱中开启SMTP服务(QQ邮箱还要设置独立密码和授权码,授权码要记下来不要忘了)

    image-20220317112240489

  • 在命令行输入telnet smtp.qq.com 25

    • 25 是端口号
    • smtp.qq.com 是服务器域名
    • 若服务器返回220,说明连接成功
  • 命令:是有顺序的

    • HELO 打招呼
    • auth login 验证登录(以前好像不要)
    • MAIL FROM 发送方
    • RCPT TO 接收方
    • DATA 邮件内容
    • QUIT 退出

    测试

1
2
3
4
5
6
7
8
telnet smtp.qq.com 25
220 newxmesmtplogicsvrszc7.qq.com XMail Esmtp QQ Mail Server.
helo world # 打招呼
250-newxmesmtplogicsvrszc7.qq.com-100.77.8.215-15730073
250-SIZE 73400320
250 OK
mail from: <235@qq.com> # 说明邮件发送者
503 Error: need EHLO and AUTH first ! # 如今需要身份验证了,不能直接发送邮件

后面用到的base64编码可以使用base64 | 杨的笔记 (yanglinqi107.github.io)里面的代码,也可以直接百度base64,有网页版的编码解码的工具

CMD终端输入 telnet smtp.qq.com 25 25是端口号,smtp.qq.com是qq邮箱服务器域名,想试其它邮箱服务器去网上搜对应的域名

image-20220322112132947

推荐现在文本编辑器中准备好命令、密码等,实际交互中容易出错,且不能Delete
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
220 newxmesmtplogicsvrsza5.qq.com XMail Esmtp QQ Mail Server. # Esmtp 需要认证,不是smtp
# smtp有安全隐患,账号容易被人用来发送大量垃圾邮件,还要背锅
helo qq # 打招呼,用户输入
250-newxmesmtplogicsvrsza5.qq.com-9.22.14.83-108883832
250-SIZE 73400320
250 OK
auth login # 验证登录,用户输入
334 VXNlcm5hbWU6 # 服务器回复,用base64解码就是 Username:
MTIzQHFxLmNvbQ== # base64加密的自己的qq邮箱名,这里示例是123@qq.com
334 UGFzc3dvcmQ6 # 服务器回复,用base64解码就是 Password:
MTIzNDU2 # qq邮箱独立密码或者授权码经base64编码,这示例是123456,
# 我独立密码没有成功用的授权码
235 Authentication successful # 服务器回复,验证成功
mail from:<123@qq.com> # 说明发送方,用户输入
250 OK
rcpt to:<378@qq.com> # 接收者,用户输入
250 OK
data # 用户输入
354 End data with <CR><LF>.<CR><LF>.
subject:hello brother # 用户输入 主题

this is my sent by telnet # 用户输入 邮件主体
. # . 加 回车 结束 用户输入
250 OK: queued as. # 服务器回复 发送成功
quit # 用户输入,退出

再用网页版QQ邮箱发送一封邮件,可以明显看到telnet发送的邮件看不到发送方

image-20220322114330301

参考:smtp中ehlo的使用 - siyed - 博客园 (cnblogs.com)

欢迎关注我的其它发布渠道