做个数据库,保存受到的邮件的”MESSAGE-ID“。
以后每次受POP3邮件都查看数据库是否有“MESSAGE-ID”,有则不是新的,没有就是旧的。
保存邮件建议用BLOB

解决方案 »

  1.   

    1. 如果你的邮件很多的话,对每一封邮件都取 Message-id 将占用较多的时间和资源,因为它需要把每一封邮件的 Header 全部 Donwload 下来再取得 Message-ID 头。
    2. 并不是每一封邮件都有 Message-ID 的。通用的做法是,先取得所有邮件的 UIDL 列表,然后保存这些 UIDL 列表,下次登陆时再从 POP SERVER 上把这个 UIDL 列表取出来与保存在本地的对照,如果发现新的 UIDL 时,再根据这些新的 UIDL 取得那些邮件。
      

  2.   

    skyyoung(路人甲)老大,小声的问一句,BLOB是什么呀?我对java了解的不多(岂知java,别的语言也不多,呵呵).
      

  3.   

    两位老大,这样做是不是没有把邮件从服务器上取下来呀?那过一段时间服务器岂不是要爆掉。
    有没有办法把mail从服务器上取下来,这样下次每次收到的信都是新邮件了,呵呵
      

  4.   

    pop没办法直接标记。要想直接标记,改用imap吧,呵呵
      

  5.   

    只有IMAP支持JAVAMAIL提供的标识,如SEEN,DELETED等
      

  6.   

    如果我用POP3或IMAP, 如何才能取得 UIDL 列表? 有没有例子可以参考
      

  7.   

    在得到 Message 信息列表的时候采用如下方式,然后再用偶下面那个函数来取得每一封邮件的 UID。保存起来,在下一次 Log on 的时候,再像这样取得 pop3 folder 里面的 UID 和存起来的比较,如果有新的 UID,则可判别有新邮件。        FetchProfile fp = new FetchProfile();
            fp.add(UIDFolder.FetchProfileItem.UID);
            //UIDFolder.FetchProfileItem.ENVELOPE; 
            this.msgs = folder.getMessages();
            folder.fetch(msgs, fp);    public String getUIDArr()[]{
            ErrMsg = null;
            if (this.messageCount <=0
                || !(this.folder instanceof POP3Folder))
                        return null;
            if (this.uidArr != null) return this.uidArr;
            POP3Folder pf = (POP3Folder)this.folder;
            String[] rtnVal = new String[this.messageCount];
            try{
            for (int i=0;i<this.messageCount;i++){
                rtnVal[i] = pf.getUID(msgs[i]);
                if (rtnVal[i] == null) return null;
            }
            }catch(MessagingException e){
                this.ErrMsg = "Error on getting UID list";
                return null;
            }
            this.uidArr = rtnVal;
            return rtnVal;
        }
      

  8.   

    基本上所有的 pop3 客户端都是这样做的,像 OE,Outlook,Foxmail 等。
      

  9.   

    不可能??
    有些类是 sun 封装了的,并不提倡让你直接使用的,如果你要找的话,可以在某个 jar 里找到相应的 class,因为以后可能有改动,你看到的只是统一的结口,比如说 Folder。
    这是偶很早以前代码,有好久没有看过了,你可以改进一下。