2013-10-05 5 views
0

라이브 메일에서 메일을 가져 오는 코드가 있습니다. 내 단계 :POP3 프로토콜을 사용하는 Javamail : 15 개월 동안 로그인 제한을 초과

  • 연결
  • 폴더를 엽니 다
  • 를 절단하는 폴더
  • 닫기 일부 정보
  • 닫기 저장

을 받기하지만 언젠가 내가이 함수를 호출, 내가 메시지를 받았습니다 보낸 사람 :

ERR Exceeded the login limit for a 15 minute period. Reduce the frequency of requests to the POP3 server 

그래서 어떻게 이런 문제를 해결할 수 있습니까? 나는 연결을 닫고 새로운 것을 열었다. 내가 왜이 오류가있어 연결을 유지하지 않았다

public boolean POPgetMail(final String EMAIL,final String PASS,final String Type,boolean isNewMail) { 


       int NUMBER_MAIL=5; 

       Message[] message_s = null; 

       Properties props2 = System.getProperties(); 
       props2.setProperty("mail.store.protocol", "pop3s"); 
       Session session2 = Session.getInstance(props2, null); 
       session2.setDebug(true); 
       try { 
        Store store = session2.getStore("pop3s"); 
        HOSTGET = "pop3.live.com"; 
        store.connect(HOSTGET,EMAIL,PASS); 
        Log.i("","Connect Success"); 
        Folder folder = store.getFolder("INBOX"); 
        folder.open(Folder.READ_ONLY); 
        int new_mail=0;     
        message_s = folder.getMessages(); 
        int countMail =folder.getMessageCount() -1; 
        if(countMail<0) { 
         folder.close(true); 
         store.close(); 
         return false; 
        } 
        Log.i("","Total Mail + "+ countMail);    
        for (int i =countMail;i > NUMBER_MAIL;i--) 
        { 

         Message message = message_s[i]; 
         if(message != null) 
         { 
          Log.i("MAIL","LOading Mail ID = " + i); 
          String subject ="No Subject"; 
          try { 
          subject=message.getSubject().toString(); 
          } 
          catch(Exception e) 
          { 
           Log.i("XX",e.toString()); 
          } 
          String contents=""; 

          int ID =i; 
          Date Date = message.getSentDate(); 
          String date = DatenTime.convertDate(Date); 
          Address[] froms = message.getFrom(); 
          //get TO 
          String to=""; 
         try { 
          Address[] tos = message.getRecipients(Message.RecipientType.TO); 

          if(tos!=null) 
          { 
           for (int j=0;j<tos.length;j++){ 
            to+=((InternetAddress)tos[j]).getAddress() +";"; 
            Log.i("","TOOOOOOOO" + to); 
           } 
          } 
         } 
         catch (Exception e) 
         { 
          Log.i("",e.toString()); 
         } 
         //get CC 
         Address[] toCC = message.getRecipients(Message.RecipientType.CC); 
         String CC=""; 
         if(toCC!=null) 
          { 
           for (int j=0;j<toCC.length;j++){ 
            CC+=((InternetAddress)toCC[j]).getAddress() +";"; 
            Log.i("","TOOOOOOOO" + CC); 
           } 

          String name = ((InternetAddress) froms[0]).toUnicodeString(); 
          String from = ((InternetAddress) froms[0]).getAddress(); 
           if(mDB.InsertEmailData(ID,EMAIL,name,from,to,CC,contents,subject,date,Define.INBOX)!=-1) 
           { 
            System.out.println("get mail success"); 

           } 
         } 
        } 
        folder.close(true); 
        store.close(); 
        mDB.close(); 
        return true; 
       } catch (Exception e) { 
        Log.i("","EX " + e.toString()); 
        return false; 
       } 
} 

답변

0

나는 당신이 오류 메시지를 이해하지 못했을 것 같아요. 연결을 너무 오래 열어 놓은 것이 아니라 15 분 내에 너무 많은 분리 된 연결을 만들었다는 것입니다. 자주 연결하지 마십시오.

관련 문제