美文网首页C
使用POP接收邮件

使用POP接收邮件

作者: 9a957efaf40a | 来源:发表于2018-10-09 18:01 被阅读91次

    提供电子邮件服务的协议叫做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 abc@126.com并回车
      服务器返回+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接收邮件

        本文链接:https://www.haomeiwen.com/subject/xvzeaftx.html