问题描述
使用javamail以pop3、只读的方式收取邮件,而不留下任何痕迹。目前遇到的问题如下:程序在收取公司exchange邮箱里的邮件后,会将服务上的邮件标记为已读,这恰恰是不我希望的。而在测试163邮箱的时候,同样的代码,却不会改变服务器上的邮件标记。不知道是哪里出了问题,在线急等答案,问题解决后,速结贴!最后附上部分源代码:Sessionsession=Session.getInstance(prop,null);session.setDebug(false);//是否启用debug模式Folderfolder=null;Storestore=null;try{store=session.getStore("pop3");//使用pop3会话机制,连接服务器store.connect(pop3Server,port,loginName,password);}folder=store.getFolder("INBOX");//收件箱folder.open(Folder.READ_ONLY);//得到收件箱文件夹信息,获取邮件列表Message[]msgs=folder.getMessages();intiemmalcount=0;for(inti=0;i<msgs.length;i++){if(isResumeEmail(resumeFromEmail,msgs[i])&&isNewEmail(lastSyncDateTime,msgs[i])){iemmalcount=iemmalcount+1;resumesName=downLoadResumeByType(resumeType,msgs[i],resumesName,zipForderPath,htmlForderPath);//设置最后邮件时间setLastMailDateTime(msgs[i]);}}System.out.println("从上次:"+lastSyncDateTime+"到现在,共收到来自"+resumeFromEmail+"邮件"+iemmalcount+"封");returnresumesName;}catch(Exceptione){logger.error("网络故障或邮件配置错误,系统不能连接邮箱服务器!");//logger.error("Networkfailureormailconfigurationerrors,thesystemcannotconnecttomailserver.");e.printStackTrace();returnnull;}finally{//释放资源try{if(folder!=null)folder.close(false);//if(store!=null)store.close();}catch(Exceptionbs){bs.printStackTrace();}}