在日常的生活中,书信往来是我们日常生活中不可缺少的一个环节。随着Internet的普及,传统信件的Internet版本——电子邮件已经逐渐步入了我们的生活与工作。在平日我们收取普通邮件的时候,我们常常会用一把带锁的箱子作为我们自己的信箱,而我们平日使用的电子邮件也有它们的暂时存放地——POP服务器。与传统邮件进行类比,我们使用账号和口令打开POP服务器就好比是我们在日常生活中打开自己平日的信箱一样,下面就让我们一起来看看如何使用POP服务器吧。
什么是POP
大家一听这个POP,读起来有点像是中文中的泡泡,其实这是一个英文术语的缩写。POP的全称是 Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口。现在常用的是第三版 ,所以简称为 POP3。POP3仍采用Client/Server工作模式,Client被称为客户端,一般我们日常使用电脑都是作为客户端,而Server(服务器)则是网管人员进行管理的。举个形象的例子,Server(服务器)是许多小信箱的集合,就像我们所居住楼房的信箱结构,而客户端就好比是一个人拿着钥匙去信箱开锁取信一样的道理。
POP在网络模型中的层次
大家都知道网络是分层的,而这个分层就好比是一个企业里的组织结构一样。在日常使用电脑过程中,人操作着电脑,人就好比是指挥电脑对因特网操作的首席执行官。当我们打开Foxmail这个邮件软件收取邮件时,Foxmail这个软件就会调用TCP/IP参考模型中的应用层协议—POP协议。
应用层协议建立在网络层协议之上,是专门为用户提供应用服务的,一般是可见的。如利用FTP(文件传输协议)传输一个文件请求一个和目标计算机的连接,在传输文件的过程中,用户和远程计算机交换的一部分是能看到的。而这时POP协议则会指挥下层的协议为它传送数据服务器,最后Foxmail通过一系列协议对话后成功将电子邮件保存到了Foxmail的收件箱里。TCP/IP参考模型是Internet的基础。和OSI的7层协议比较,TCP/IP参考模型中没有会话层和表示层。通常说的TCP/IP是一组协议的总称,TCP/IP实际上是一个协议族(或协议包),包括100多个相互关联的协议,其中IP(Internet Protocol,网际协议)是网络层最主要的协议;TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)是传输层中最主要的协议。一般认为IP、TCP、UDP是最根本的三种协议,是其它协议的基础。
相信读者了解TCP/IP框架之后,一定会对各层产生一定的兴趣,不过我们对于这个模型的理解也是一步步来的。在这里,我们首先只要知道相应的软件会调用应用层的相应协议,比如Foxmail会调用POP协议,而IE浏览器则会调用DNS协议先将网址解析成IP地址。在实际收取邮件的过程中,POP这个应用层的协议会指挥TCP协议,利用IP协议将一封大邮件拆分成若干个数据包在Internet上传送。
为了便于读者理解这个过程,笔者举个例子来说明一下,比如你要和一个人远距离通话,因为距离实在太远了,你只好将你所表达的一大段分成一个个字大声喊,而对方把每个听到的字写在纸上,当写下来后就大喊一声告诉你它收到了,这样就克服了距离远听不清的弱点,这种一问一答的反馈机制就好比是TCP协议,POP服务器一般使用的是TCP的110号端口。
POP工作原理简介
下面就让我们一起来看看电子邮件软件收取电子邮件的过程,一般我们在电子邮件软件的账号属性上设置一个POP服务器的URL(比如pop.163.com),以及邮箱的账号和密码。这个在收信过程中都是用得到的。当我们按下电子邮件软件中的收取键后,电子邮件软件首先会调用DNS协议对POP服务器进行解析IP地址,当IP地址被解析出来后,邮件程序便开始使用TCP协议连接邮件服务器的110端口,因为POP服务器是比较忙的,所以在这个过程中我们相对要等比较长的时间。当邮件程序成功地连上POP服务器后,其先会使用USER命令将邮箱的账号传给POP服务器,然后再使用PASS命令将邮箱的账号传给服务器,当完成这一认证过程后,邮件程序使用STAT命令请求服务器返回邮箱的统计资料,比如邮件总数和邮件大小等,然后LIST便会列出服务器里邮件数量。然后邮件程序就会使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态。当使用QUIT时,邮件服务器便会将置为删除标志的邮件给删了。通俗地讲,邮件程序从服务器接收邮件,其实就是一个对话过程,POP协议就是用于电子邮件的一门语言。 转帖于 Xue163.com_POP3协议
<!--正文结束-->
分享到:
相关推荐
总结来说,JavaMail开发原理主要包括理解邮件服务的基本概念,如邮件服务器、电子邮箱、SMTP和POP3协议,以及如何使用JavaMail API创建和发送邮件。开发者还需要熟悉邮件传输过程中可能出现的问题和解决策略,以确保...
JavaMail API 是Java平台上的一个标准扩展库,用于开发能够读写和发送电子邮件的应用程序。这个API的设计目标是实现与邮件服务提供商和具体协议无关的邮件操作,使得开发者可以轻松地在不同邮件系统间进行交互。...
电子邮件是互联网上最常用的信息交流方式之一,其收发原理主要依赖于两个协议:POP3(Post Office Protocol version 3)和SMTP(Simple Mail Transfer Protocol)。这篇内容将深入讲解这两个协议的工作机制,并通过...
在编程中,开发人员通常会使用邮件收发相关的类库来简化邮件处理,例如Python的smtplib和poplib库,Java的JavaMail API等,这些库提供了方便的接口来执行SMTP和POP3操作。 了解和掌握SMTP和POP3的原理及编程,对于...
9. **源码分析**:张孝祥老师的视频源码可能会包含上述功能的实现,通过对源码的学习,我们可以更深入地理解 JavaMail 的内部工作原理和最佳实践。 10. **实战应用**:课程可能还会涵盖如何将 JavaMail 集成到实际...
在这个主题中,我们将深入探讨POP3协议的工作原理、Java编程语言如何实现POP3邮件接收,以及与之相关的可视化界面设计。 POP3(Post Office Protocol version 3)是互联网标准协议之一,它允许用户从邮件服务器检索...
源代码的提供对于开发者来说极其重要,它允许开发者深入理解JavaMail的工作原理,定制和优化其功能。javamail-1.4.3-src.zip 文件中包含的源代码可以帮助开发者: 1. **学习和研究**:查看源代码有助于学习JavaMail...
JavaMail API 的主要目标是提供与协议无关的方式来收发邮件,这意味着它不会直接依赖于具体的邮件传输协议(如 SMTP、POP3、IMAP 或 NNTP)。通过这种方式,JavaMail API 可以轻松地适应不同的邮件服务器环境,并且...
学习和使用 JavaMail API 要求理解邮件协议的工作原理,并熟悉 API 提供的各种类和方法。通过阅读 `javamail.CHM` 帮助文档,开发者可以获得详细的指导,从而高效地实现邮件功能。此外,`codefans.net` 可能是包含更...
通过分析JavaMail 1.4.3的源码,开发者可以学习如何正确处理邮件的生命周期,理解邮件协议的工作原理,以及如何在实际项目中有效地使用JavaMail API。同时,源码还包含了各种错误处理和异常处理的示例,这对于编写...
2. **POP3/IMAP 接收邮件**:对于邮件接收,JavaMail 支持 POP3 (Post Office Protocol v3) 和 IMAP (Internet Message Access Protocol) 协议。开发者可以通过 `Folder` 类打开邮箱,`Store` 类负责连接邮件服务器...
在实际应用中,JavaMail还可以支持多种协议,如SMTP、POP3和IMAP,以处理不同的邮件操作。SMTP(Simple Mail Transfer Protocol)用于发送邮件,而POP3(Post Office Protocol version 3)和IMAP(Internet Message ...
1. **JavaMail API**: JavaMail API是Java平台上的一个标准API,用于处理邮件服务,包括SMTP、POP3和IMAP协议。它提供了丰富的类和接口,允许开发者创建复杂的邮件应用。 2. **SSL/TLS**: SSL(Secure Socket Layer...
这个源码包可以帮助开发者深入理解JavaMail的工作原理,以及如何利用它来构建邮件系统。 首先,让我们来看看JavaMail 2.0的核心概念和组件: 1. **Message类**:这是JavaMail中的基本消息对象,用于封装邮件内容。...
不过,了解JavaMail的基本原理和API对于理解这些封装库的工作方式非常有帮助。 总的来说,JavaMail为Java开发者提供了强大且灵活的邮件处理能力,无论是简单的文本邮件还是复杂的HTML邮件,甚至是带有附件的邮件,...
- 源代码对于深入理解 JavaMail 内部工作原理极其有价值,可以帮助开发者解决遇到的问题,甚至定制自己的邮件处理功能。 - 通过阅读源码,可以学习到邮件协议(如 SMTP、POP3、IMAP)的实现细节,以及如何处理各种...
JavaMail 是一个强大的开源库,专门用于在Java应用程序中处理电子邮件。这个"javamail-1.4.1.rar"压缩包包含...这个"javamail-1.4.1"版本虽然相对较旧,但对于理解邮件处理的基本原理和API使用仍然具有很高的参考价值。
邮件服务器的工作原理基于一系列的互联网标准,其中最重要的两个协议是简单邮件传输协议(SMTP)和邮局协议(POP3)。 二、SMTP协议 SMTP(Simple Mail Transfer Protocol)用于在邮件服务器之间发送邮件。当用户...
这个“javamail-1.5.4-src.zip”文件包含了JavaMail 1.5.4版本的源代码,是理解其内部工作原理和进行定制开发的重要资源。在深入探讨这个压缩包的内容之前,我们先来了解一下JavaMail的基本概念。 JavaMail API ...
JavaMail 是一个开源的 Java API,它允许 Java 程序员通过 SMTP、POP3、IMAP 协议发送和接收电子邮件。这个“javaMail发送邮件依赖的jar包源码整理”提供了关于如何使用 JavaMail 发送邮件以及相关库的源代码,这...