现在我通过JAVAMAIL将邮件读取到本地后,
下次接收如何快速判断邮件是否已接收。
有什么好的思路大家帮帮忙

解决方案 »

  1.   


     /**
      * 【判断此邮件是否已读,如果未读返回返回false,反之返回true】
      */
      public boolean isNew()throws  MessagingException{
       boolean isnew = false;
        Flags flags = ((Message)mimeMessage).getFlags();
       Flags.Flag []flag  = flags.getSystemFlags();
       System.out.println("flags's length: "+flag.length);
       for(int  i=0;i<flag.length;i++){
        if(flag[i] == Flags.Flag.SEEN){
         isnew=true;
         System.out.println("seen  Message.......");
         break;
       }
      }
      return  isnew;
     }
    抄来的,不能保证正确性
      

  2.   

    我看过POP3协议的好像都是写关于提取UID 来判断不知道 通过POP3能不能只读取UID 不要把所有内容都读取 然后提取UID 
    这样如果网络邮件越来越多 会不会很影响速度
      

  3.   

    有没有谁了解过 outlook 或者 foxmail 关于接受邮件判断的一些方法啊
      

  4.   

    如果我先用OUTLOOK 读取了  然后再用我写的javamail读取 
    这样会不会导致我无法读取到呢
      

  5.   

    对于OE,使用POP3,每次收完信就从服务端删除了,把邮件保存在本地文件中。在你的本地文件中加了标记是否已读,和服务端没有任何关系,服务端已经没有这封邮件了。如果你设置在服务器端保留副本,它也不标记你是否已经读,已读只是收到本地后在本地的一个标记。