使用telnet登录SMTP服务发送邮件

最近在看《计算机网络自顶向下方法》,初步了解了SMTP协议。尝试用telnet登录SMTP服务给自己的qq邮箱发送了一封邮件,中间踩了很多坑,现在把具体步骤总结如下:

1.打开终端,输入telnet,回车

2.输入o smtp.139.com 25,此处o是open的缩写,以139邮箱为例,25表示SMTP服务器时刻监听的端口号,登录SMTP服务器。服务器返回220 localhost richmail system v10(2eff5a1190ba8e2-ea850)表示成功

3.输入HELO xxx,和服务器打招呼,xxx可以是任意内容,确认服务器应答,服务器返回250 localhost richmail system v10(2eff5a1190ba8e2-ea850)表示成功

4.输入auth login,请求登录,服务器返回334 dXNlcm5hbWU6,334是成功的状态码,后面是 username: 的base64码,可以在网上找到编码和解码工具

5.输入转换为base64码后的发送邮箱的用户名,不用带邮件域名,服务器返回334 UGFzc3dvcmQ6,334是成功的状态码,后面是 password: 的base64码

6.输入转换为base64码后的发送邮箱的密码,服务器返回235 Authentication successful表示登录成功

7.输入MAIL FROM:<发件人邮箱地址>,告诉服务器发信人的地址,服务器返回250 Mail OK表示成功

8.输入RCPT TO:<收件人邮箱地址>,告诉服务器收信人的地址,服务器返回250 Mail OK表示成功

9.输入DATA,开始写邮件,服务器返回354 End data with .提示邮件以一个单独占有一行的.结束

10.邮件格式如下:

To:收件人邮箱地址
From:发件人邮箱地址
Subject:邮件主题 //前三行是首部行
            //首部行和报文体之间要有一个空行   
邮件正文    //报文体
.   //结束邮件的标志

服务器返回250 ok表示发送成功,如果要继续发送,则返回步骤7重复即可。

11.发送完所有邮件之后输入QUIT,关闭TCP连接

下面是成功接收的邮件

使用telnet登录SMTP服务发送邮件_第1张图片
test.png

注意几个坑:
1.发件方使用的是139邮箱,尝试qq邮箱和163邮箱开启了SMTP服务也不成功,可能是基于安全性考虑进行了限制
2.收件方邮箱如果有反垃圾机制,应该事先关闭,否则会拒绝接收邮件

你可能感兴趣的:(使用telnet登录SMTP服务发送邮件)