使用POP接收邮件

提供电子邮件服务的协议叫做SMTP(Simple Mail Transfer Protocol)。SMTP为了实现高效发送邮件内容,在其传输层使用了TCP协议。

这就导致了一个问题,必须两台电脑都开机的情况下才能正常工作。

为了解决这个问题,在中间层引用了邮件服务器。这个邮件服务器是会一直连接电源并且在线的。

在上一章《使用SMTP发送邮件》,我们正是登录了该邮件服务器,达到了发送邮件的目的。并且,邮件会被暂存在邮件服务器当中。

那么接收端如何接收邮件?这里就引用了POP协议。

POP协议

POP协议全为Post Office Protocol。发送端的邮件根据SMTP协议将被转发给一直处于插电状态的POP服务器。客户端再根据POP协议从POP服务器接收对方发来的邮件。在这个过程中,为了防止他人盗窃邮件内容,还要进行用户验证。

POPSMTP一样,也是在其客户端与服务器之间通过建立一个TCP连接完成相应操作。POP的具体命令比较简单,都是ASCII码字符串,应答更是极其简单,只有两种。正常情况下的+OK,发生错误或异常情况下为-ERR

  1. 登录POP服务器
    $telnet pop.126.com 110

POP服务器的端口为110

一旦连接成功,服务器返回:
+OK Welcome to coremail Mail Pop3 Server (126coms[753e2252bd59b8c4a1c2eb6d5fe57cb3s])

  1. 输入账户名和密码
    输入user [email protected]并回车
    服务器返回+OK core mail
    再次输入密码pass 123456并回车
    服务器返回+OK 1718 message(s) [11915346 byte(s)]

SMTP登录不同,这里不使用base64,而是直接使用明文。登录后可以看到返回的邮件总数和大小。

  1. 列出所有邮件
    输入list并回车

服务器返回

list
+OK 1718 11915346
1 11949
2 70118
3 70298
4 8321
5 8313
6 8475
7 8482
8 8271
9 8382
10 8601
11 9240
12 8800
13 8444
14 8233
15 8215
16 7942
17 71947
18 8564
19 70120
20 9303
.
.
.
  1. 获取邮件信息
    输入retr 1并回车
    此时应该返回该邮件的完整信息。

  2. 删除邮件
    输入dele 1并回车
    删除邮件1

注意此时并不会立即删除,而是等到quit后才会删除

  1. 退出
    输入quit并回车

认证时的有效命令

指令 含义
USER 用户名 发送用户名
PASS 用户名 发送密码
QUIT 通信结束
APOP name digest 认证

应答

指令 含义
+OK 正常时
-ERR 发生错误时

事务状态命令

指令 含义
STAT 状态通知
LIST [msg] 确认指定邮件大小
RETR [msg] 取的邮件信息
DELE [msg] 删除服务器中保存的邮件(QUIT命令执行时才真正删除)
RESET 撤销所有DELE命令,通信结束
QUIT 执行DELE命令,终止通信
TOP msg n 只要邮件的前n行内容
UIDL [msg] 获得该邮件的唯一标识

你可能感兴趣的:(使用POP接收邮件)