热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

POP3协议详解

POP3协议详解文章目录POP3协议详解authorizationtransactiondownload-and-deletedownload-and-keepupdatePOP3

POP3协议详解


文章目录

  • POP3协议详解
    • authorization
    • transaction
      • download-and-delete
      • download-and-keep
    • update



POP3是一个非常简单的
邮件访问协议。


Post Office Protocol version 3 (POP3) is a standard mail protocol used to receive emails from a remote server to a local email client.


因为这个协议非常简单,所以这个协议的功能很少。

什么时候会用到这个协议呢?
POP3 begins when the user agent (the client) opens a TCP connection to the mail server (the server) on port 110.

当TCP连接建立好之后,POP3 progresses through 3 phases:


  • authorization
  • transaction
  • update

一脸懵逼



authorization

the user agent sends a username and a password (in the clear,明文)to authenticate the server.

在这个阶段有两个主要的命令:


  • user
  • pass

为了搞清楚这两个命令,我们建议你最好使用Telnet直接登录到a POP3 server, using port 110, and issue these commands.


说实话,我对telnet不太了解,我只知道可以使用命令敲击。然而我的电脑是mac的,telnet不知道什么时候已经装好了。先不研究telnet吧。


假定 mailServer 是你的邮件服务器的名称,You will see something like:

telnet mailServer 110
+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged on

If you misspell a command, the POP3 server will reply will an -ERR message.


所以mailServer必须要是一个POP3 server吗?


下面举个实在点的例子吧。武大人都有武大邮箱,我们就拿武大邮箱来举个例子吧。
命令不多,我就直接截图了。
在这里插入图片描述
可以看到在+OKd的后面写了个397 messages,
这说明了在我的服务器的收件箱中一共有397条消息。
真的吗,呵呵
在这里插入图片描述
确实,分毫不差


transaction

the user agent retrieves messages; also during the phase, the user agent can mark messages for deletion, remove deletion marks and obtain mail statistics.

In a POP3 transaction, the user agent issues commands, and the server responds to each command with a reply. 有两种可能的回复:


  • +OK (sometimes followed by server-to-client data),used by the server to indicate that the previous command was fine.
  • -ERR, used by the server to indicate that something was wrong with the previous command.

A user agent using POP3 can often be configured (by the user) to “download and delete” or “download and keep”. The sequence of commands issued by a POP3 user agent depends on which of these two modes the user agent is operating in.


  • In the download-and-delete mode, the user agent will issue the
    • list
    • retr
    • dele
      commands.

As an example, suppose the user has 2 messages in his or her mailbox.

In the dialogue below, C: (standing for client) is the user agent and S: (standing for server) is the mail server. The transaction will look something like:

C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: (blah blah ...)
S: .......................
S: .............blah)
S: .
C: dele 1
C: retr 2
S: (blah blah ...)
S: ...................
S: ...........blah)
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off

上面这一连串命令都是在你本地电脑的命令行中敲的。
这一连串命令是什么意思呢?
The user agent first asks the mail server to list the size of each of the stored messages.
The user agent then retrieves and deletes each message from the server.
注意,这个user agent仅使用了4个命令。


  • list
  • retr
  • dele
  • quit

这些命令的语法is defined in RFC 1939.
After processing the quit command, the POP3 server enters the update phase and removes messages 1 and 2 from the mailbox.


也就是说只要在最后执行quit命令之后,才会真正的删除,并不是我一旦执行dele命令,就会进行更新的。


使用list命令查看每一条消息的大小
在这里插入图片描述
在这里插入图片描述
当list不加任何参数的时候,就是默认列出所有邮件的大小。
当我们指定邮件的编号时,就可以列出指定邮件的大小:
在这里插入图片描述
使用retr命令获取第1条消息
在这里插入图片描述
通过武大邮箱看一看第一条消息是什么样的呢?
在这里插入图片描述
大体可以看出,获取的是一样的消息。


我突然想起来,当年屈道涵学长是不是就是这样把我们的作业邮件搞下来的。



download-and-delete

A problem with this download-and-delete mode is that the recipient, Bob可能是一个到处跑的产品经理, may want to access his mail messages from multiple machines. 举个例子, his office PC, his home PC, and his portable computer.

The download-and-delete mode partitions Bob’s mail messages over these 3 machines: In particular, If Bob first reads a message on his office PC, he will not be able to reread the message from his portable PC at home later in the evening.


download-and-keep

In the download and keep mode, the user agent leaves the messages on the mail server after downloading them. In this case, Bob can reread messages from different machines; he can access a message from work and access it again later in the week from home.


update

the update phase occurs after the client has issued the quit command, ending the POP3 session; at this time, the mail server deletes the messages that were marked for deletion.

During a POP3 session between a user agent and the mail server, the POP3 server maintains some state information; In particular, it keeps track of which user messages have been marked deleted.

However, the POP3 server does not carry state information across POP3 sessions. The lack of state information across sessions greatly simplifies the implementation of a POP3 server.


至此,我已经讲解完毕了POP3协议提供的一些常用服务。有疑问欢迎留言呀!



推荐阅读
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • 本文介绍了如何在 macOS 上安装 HL-340 USB 转串口驱动,并提供了详细的步骤和注意事项。包括下载驱动、关闭系统完整性保护、安装驱动以及验证安装的方法。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 本文详细解析了客户端与服务器之间的交互过程,重点介绍了Socket通信机制。IP地址由32位的4个8位二进制数组成,分为网络地址和主机地址两部分。通过使用 `ipconfig /all` 命令,用户可以查看详细的IP配置信息。此外,文章还介绍了如何使用 `ping` 命令测试网络连通性,例如 `ping 127.0.0.1` 可以检测本机网络是否正常。这些技术细节对于理解网络通信的基本原理具有重要意义。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本指南详细介绍了如何利用华为云对象存储服务构建视频点播(VoD)平台。通过结合开源技术如Ceph、WordPress、PHP和Nginx,用户可以高效地实现数据存储、内容管理和网站搭建。主要内容涵盖华为云对象存储系统的配置步骤、性能优化及安全设置,为开发者提供全面的技术支持。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
author-avatar
夕祈文_279
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有