`
lqixv
  • 浏览: 218714 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

对POP3邮箱中的新邮件的判断方法

    博客分类:
  • java
阅读更多

由于pop3协议不支持对已读未读邮件的标记,因此,要判断一封pop邮箱中的邮件是否是新邮件必须与邮件客户端联合起来才能做到。其原理是,每个服务器都会给每封邮件产生一个唯一的uid,客户端把读到的uid与本地保存的uid比较,如果本地没有这个uid,则这封邮件是新的,否则就是旧邮件。一般的邮件客户端,如 outlook express、foxmail等,都是用这种方法实现的。大约步骤如下:

  1. 客户端读取邮箱里所有邮件的 uid 列表(通过命令 UIDL 可以查看);
  2. 把uid列表与本地保存的uid列表相比较;
  3. 如果本地已存在,则比较下一个邮件uid;
  4. 如果本地不存在此uid,则下载此邮件,并保存此邮件的uid在本地;

大致的java代码实现如下:

URLName url = new URLName("pop3", host, port, "", user, password);
Session session = Session.getInstance(System.getProperties(),null);
Store store = session.getStore(url);
POP3Folder inbox = null;
try {
       store.connect();
       inbox = (POP3Folder) store.getFolder("INBOX");
       inbox.open(Folder.READ_ONLY);
       FetchProfile profile = new FetchProfile(); 
       profile.add(UIDFolder.FetchProfileItem.UID); 
       Message[] messages = inbox.getMessages();
       inbox.fetch(messages, profile);
       for (int i = 0; i < messages.length; i++) 
              System.out.println(inbox.getUID(messages[i])); 
} finally {
       try{
              inbox.close(false);
       }catch(Exception e){}
       try{
              store.close();
       }catch(Exception e){}
} 

 

 参考:

1、http://www.javayou.com/diary/390

2、http://topic.csdn.net/t/20010905/16/273295.html

分享到:
评论

相关推荐

    python实现下载pop3邮件保存到本地

    Python实现下载pop3邮件保存到本地的知识点涉及到使用Python进行网络编程,利用poplib模块与邮件服务器交互,以及使用正则表达式处理邮件内容。以下是详细介绍: 1. poplib模块介绍: poplib是Python标准库的一部分...

    一个C#写的用pop3协议 获取邮件内容以及附件的例子。

    4. **查询邮件数量**:通过调用`GetMessageCount()`方法获取邮箱中的邮件总数。 5. **遍历并下载邮件**:对于每个邮件,使用`GetMessage()`方法获取邮件对象。这个对象包含了邮件的头部信息和内容。 6. **获取邮件...

    POP3邮件编程实现.zip

    在这个项目中,开发者创建了一个程序,能够连接到POP3(Post Office Protocol version 3)邮件服务器,进行一系列邮件操作。以下是对这一实现的详细解释: 1. **POP3协议**:POP3是一种互联网标准协议,用于从邮件...

    Qt pop3接收邮件并下载附件程序

    在本文中,我们将深入探讨如何使用Qt库中的POP3功能来实现自动登录邮箱、接收邮件以及下载附件。Qt是一个跨平台的应用程序开发框架,广泛应用于C++编程,它提供了丰富的功能,包括网络通信模块,使得我们可以方便地...

    POP3协议登录邮箱查看邮件软件

    在本文中,我们将深入探讨POP3协议的工作原理、如何使用它登录163邮箱以及如何解析包含Base64和UTF-8编码的邮件。 1. **POP3协议简介** POP3是一种客户端/服务器架构的协议,用户通过POP3客户端连接到邮件服务器,...

    pop3.rar_libnids smtp_libnids pop3_pop3_pop3 协议_pop3 邮件

    在“pop3.c”源代码中,可能包含了使用`libnids`库来监听和解析POP3会话的代码片段,包括识别和处理各种POP3命令,以及可能的错误处理和日志记录。通过这个程序,开发者可以深入理解POP3协议的工作原理,也可以用于...

    vb接收电子邮件email的程序(pop3协议),支持附件.zip

    POP3是一种广泛使用的邮件接收协议,它允许用户从邮件服务器上下载新邮件到本地计算机。 在"vb接收电子邮件email的程序(pop3协议),支持附件.zip"这个项目中,开发者已经创建了一个VB应用程序,能够通过POP3协议获取...

    51CTO下载-运用C#实现POP3邮件接收程序源代码

    `Pop3Client`提供了`GetMessageCount`方法,用于获取邮箱中的邮件数量。此外,`GetMessage`或`GetMessages`方法可以用来获取单个或所有邮件的详细信息。 ```csharp int messageCount = pop3Client....

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    这个库支持多种邮件协议,如 SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和 IMAP(因特网消息访问协议)用于接收邮件。在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量...

    邮件协议pop3-smtp语言格式详解

    2. **SMTP接收**:目标SMTP服务器确认接收邮件,并将其存储在收件人的邮箱中。 3. **POP3检索**:收件人使用POP3客户端连接到ISP,发起邮件下载请求,邮件从邮件服务器转移到本地计算机。 理解SMTP和POP3的工作原理...

    用Delphi2010 实现邮件附件收发功能

    删除邮件服务器中第几个邮件。从1开始。 procedure Disconnect; override; 关闭连接。 TIdMessage组件简介 TIdMessage用来支持邮件消息协议,如POP3,SMTP,NNTP等。TIdMessage支持多用途Internet邮件扩展(MIME...

    邮件服务 smtp和pop3的结合

    SMTP (Simple Mail Transfer Protocol) 和 POP3 (Post Office Protocol version 3) 是电子邮件系统中的两个核心协议,分别用于处理邮件的发送和接收。 SMTP 主要负责邮件的传递,它使用TCP端口25来建立连接。在使用...

    pop3.rar_pop3

    当用户通过POP3客户端登录到服务器时,它会与服务器建立一个安全的连接,然后执行一系列命令来管理邮箱中的邮件。这些命令包括列出邮件、读取邮件、删除邮件等。然而,如标题所示,这个特定的“pop3高级程序开发”...

    JavaMail 具备垃圾邮件过滤功能的邮箱

    在描述中提到的“具备垃圾邮件过滤功能的邮箱”是一个基于JavaMail实现的邮件系统,其核心亮点在于增加了垃圾邮件过滤机制,以提高用户对邮件的管理效率。 首先,这个邮箱系统实现了邮件的基本功能,包括收发邮件。...

    邮件服务器源码(POP3,SMTP)

    3. 邮件转发功能:这通常涉及解析邮件头,识别并处理转发指令,然后使用SMTP协议将邮件重新发送到新的目的地。 4. 用户认证:为了安全,邮件服务器通常需要验证用户身份,这可能包括简单的用户名和密码验证,或者更...

    计算机网络实验 邮件系统(POP3端)

    这可能涉及到对邮件结构的理解,以及使用`email`库中的方法来分割和处理邮件的不同部分。 总结起来,这个实验涵盖了以下知识点: 1. 计算机网络中的电子邮件系统,特别是POP3协议的工作原理。 2. 使用Python的`...

    电子邮件服务器描述stmp协议和pop3之间的传递

    POP3服务器通常监听110号端口,用户通过客户端软件如Foxmail、Outlook Express登录邮箱,POP3服务器则会检查对应账户的邮件存储空间。IMAP协议提供了一种更高级的邮件管理方式,用户可以在不下载邮件的情况下预览和...

    VC中实现POP3和SMTP协议

    在VC++环境中,实现POP3(Post Office Protocol version 3)和SMTP(Simple Mail Transfer Protocol)协议是构建电子邮件客户端或服务器的关键步骤。POP3主要用于从邮件服务器接收邮件,而SMTP则用于发送邮件。这里...

    java检验用户邮箱是否真实有效(去邮箱服务器上检验)

    本文将详细讲解如何使用Java来实现这个功能,主要涉及的知识点包括:JavaMail API、邮件服务器的通信协议(如POP3和SMTP)、SSL/TLS加密以及邮箱验证的逻辑。 首先,JavaMail API是Java中用于处理邮件的库,它提供...

    POP3_IMAP4_SMTP简介

    在发送邮件时,SMTP先判断邮件是否需要转发,如果是本地邮件,直接投递到收件人的邮箱;若需转发,它查询DNS找到收件人邮件服务器的MX记录,然后建立SMTP连接进行邮件传递。SMTP通过一系列命令如MAIL和RCPT确认邮件...

Global site tag (gtag.js) - Google Analytics