newCount=folder.getUnreadMessageCount();//得到新邮件数
oldAndnewCount=folder.getMessageCount();//得到所有邮件数

解决方案 »

  1.   

    使用标记识别
    1为Old
    2为new
      

  2.   

    WAPQQ(<鹏>) 你是指flag吗?
      

  3.   

    用 msg.isSet(Flags.Flag.SEEN) 来判断。
      

  4.   

    up
    我也想知道msg.isSet(Flags.Flag.SEEN),支持POP,IMAP4吗?好象不行啊。那么用POP,怎么能判断新旧MAIL呢?
      

  5.   

    根据我的实验和sun的说法pop不支持Flag的SEEN属性,我的E文不好,也不知道看错没有。
      

  6.   

    如果:  
          info[i].setFlag(Flags.Flag.SEEN,true);
            if ( info[i].isSet(Flags.Flag.SEEN)){
               out.println("##RECENT TRUE##");
            }
    那么每个信息都会显示"##RECENT TRUE##",
    但是过后,再用
      //    info[i].setFlag(Flags.Flag.SEEN,true); 注销掉
            if ( info[i].isSet(Flags.Flag.SEEN)){
               out.println("##RECENT TRUE##");
            }
    来检查就都不显示"##RECENT TRUE##"了。根本没用嘛,我用的是POP3
      

  7.   

    我现在只是将收回来的mail存在数据库中,这样就可以与新收的mail做比较,来判定,所以如果信件比较多,就会影响效率。不知道各位高手是怎样做的?
      

  8.   


        public boolean isSeen (MimeMessage mm){
            boolean readFlag = false;
            try {
                Flags flags = mm.getFlags();
                Flags.Flag[] sf = flags.getSystemFlags(); // get the system flags
                for (int i = 0; i < sf.length; i++) {
                    Flags.Flag f = sf[i];
                    if(f == Flags.Flag.SEEN){
                        readFlag = true;
                    }
                    else{
                        continue;       // skip it
                    }
                }
            } catch (Exception e) {
                System.out.println(e.toString());
            }
            return readFlag;
        }
      

  9.   

    POP3协议是不支持对新旧邮件的判断的!我的做法是把邮件的大小和邮件的发送时间保存在本地,每次一封封的比较!因为两封邮件同时大小和发送时间都相等的几率很小的,我们做的新邮件提醒几乎没有遇见过不准的!