命令行发送接收邮件smtp、pop3协议-计网(3)

前言

学习邮件系统的相关知识后,实际操作一下。应用一下具体的命令行。

正文

要看看我计算机网络应用层基础总结的这里

smtp协议

  • 常见命令
命令行 作用
helo smtp 和服务器打招呼,测试登陆进去没
auth login 登陆具体邮箱,用户名和密码是经过base64加密的
mail from 输入邮件的发送方
rcpt to 输入邮件的接收方
data 开始编写邮件
quit 退出
  • 常见的反馈代码
代码 含义
220 smtp已处于在线状态,可以进行相关操作
221 关闭smtp服务
250 当前操作已经正确完成
334 等待输入,在登陆用户是出现
235 验证成功
535 验证失败
  • 实际操作
    我是使用163邮箱发邮件到gmail中。
  1. 开启smtp服务
    要在官网中设置一下,官网
    找到设置->POP3/SMTP/IMAP,开启这几个服务,结果如下图
    命令行发送接收邮件smtp、pop3协议-计网(3)
    获得授权码
    点击客户端授权密码按要求完成,并且记录下授权码,之后登陆就用这个授权码。
    命令行发送接收邮件smtp、pop3协议-计网(3)
    OK,设置至此完成了
  2. 账户验证
    终端先连接smtp服务,并向服务器打招呼,看是否得到正确回应
telnet smtp.163.com 25
helo smtp

命令行发送接收邮件smtp、pop3协议-计网(3)
之后就要验证账号密码了,账号(不包括@163.com)和密码(刚刚设置的授权码)都是base64加密后的,可以在线加密 加密网址

auth login
#base64 encode过的账号
#base64 encode过的授权码

命令行发送接收邮件smtp、pop3协议-计网(3)
如果出现了535 Authentication failed 可能是,账号授权码问加密,账号把@163.com一起加密输进去了,输入授权码而不是密码

  1. 发送邮件
mail from <[email protected]>
rcpt to <examplemail>
data #开始写邮件

值得注意的是,写邮件的头部信息包含from、to以及subject,这三项之后跟空格然后才是对应的内容,并且头部信息和正文以空行分割,.邮件结束,发送邮件.
命令行发送接收邮件smtp、pop3协议-计网(3)
4. 查看结果
打开163,在发件箱查看
命令行发送接收邮件smtp、pop3协议-计网(3)

命令行发送接收邮件smtp、pop3协议-计网(3)OK。

pop3协议

pop3默认端口为110。pop3协议有两个阶段:

  • 认证阶段
    用户端输入用户名、密码进行认证,服务器端返回OK或者ERR
  • 事务阶段
    可以对邮件基本操作。

常用命令

命令 作用
user 输入用户名
pass 输入密码
list 列出消息数量,并且自动编号
retr 根据消息编号检索消息
dele 删除消息
quit 退出

实例操作
大体流程是使用telnet登陆、身份认证、进入事务阶段,基本操作

 telnet pop.163.com 110

成功后会返回OK .....省略,如图:
命令行发送接收邮件smtp、pop3协议-计网(3)

进入认证阶段,输入的内容都不需要进行加密

user username
pass 授权码

命令行发送接收邮件smtp、pop3协议-计网(3)
如果出现了ERR返回码,则可能是:

  • 输入用户名加上了@xx.com
  • 没有输入授权码,而是输入了密码
  • 拼写有错误

认证成功后即进入事务阶段。这里,我先列出我的所有邮件,然后查看一封,最后删除这一封,并且在163邮箱官网验证结果。

list 

命令行发送接收邮件smtp、pop3协议-计网(3)
查看第一封邮件

retr 1

命令行发送接收邮件smtp、pop3协议-计网(3)
找到具体内容
命令行发送接收邮件smtp、pop3协议-计网(3)

最后删除并退出

dele 1
quit

命令行发送接收邮件smtp、pop3协议-计网(3)

然后在官网进行验证。
命令行发送接收邮件smtp、pop3协议-计网(3)

命令行发送接收邮件smtp、pop3协议-计网(3)

提示我们已经删除,并且备份到客户端删信文件夹,到文件夹看一下,对比是不是我们删除的。
命令行发送接收邮件smtp、pop3协议-计网(3)
查看内容
命令行发送接收邮件smtp、pop3协议-计网(3)
确实是我们删除的。