title: javax.mail.MessagingException: A3 BAD User is authenticated but not connected
body: <p>I am trying to read mail from exchange server using IMAP protocol. I have implemented the code. But following exception occurs while executing the code.This exception occurs occasionally, I didn't get the reason why this is happening.</p>
  
  <p>javax.mail.MessagingException: A3 BAD User is authenticated but not connected.;
    nested exception is:
      com.sun.mail.iap.BadCommandException: A3 BAD User is authenticated but not connected.
      at com.sun.mail.imap.IMAPFolder.open(IMAPFolder.java:958)
      at agent.client.attributeGroups.SendReceive.readMailAndReply(SendReceive.java:115)
      at agent.client.attributeGroups.MailQueue.calculateTime(MailQueue.java:45)
      at agent.client.MainClass$1.run(MainClass.java:72)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)</p>
  
  <p>code:</p>
  
  <pre><code>Properties props = new Properties();
              props.put("mail.imap.auth", "true");
              props.put("mail.imap.ssl.enable", "true");
              props.put("mail.imap.host", "outlook.office365.com");
              props.put("mail.imap.port", "993");
              props.put("mail.transport.protocol", "imap");  
              props.put("mail.imap.auth.plain.disable", true);
              props.put("mail.imap.auth.ntlm.disable", true);
              props.put("mail.imap.auth.gssapi.disable", true);
  
            //Get session object by passing credentials.
              Session session = Session.getDefaultInstance(props, 
                      new javax.mail.Authenticator(){
                          protected PasswordAuthentication getPasswordAuthentication() {
                              return new PasswordAuthentication(
                                      mailId, mailPass);}});
  
           //Creating IMAP store and connecting it to Mailbox using credentials.   
           store = session.getStore("imap");
           store.connect(mailId, mailPass);
  
               //Getting mailbox mails.
               inbox = store.getFolder("INBOX");
               inbox.open(Folder.READ_WRITE); 
               int totalMailCount = inbox.getMessageCount();
  
               //Reading all mails to Message array.
               Message[] messages = inbox.getMessages(1, totalMailCount);
               for (Message mail : messages) 
               {  
                      Address[] fromAddresses = mail.getFrom();                      
                      String mailFrom = fromAddresses[0].toString();
                      String mailSubject = mail.getSubject();
                  System.out.println(mailFrom);
                      System.out.println(mailSubject);
                      mail.setFlag(Flags.Flag.DELETED,true);
  
                     }                       
                  }
  
               }
  </code></pre>
  
  <p>Please suggest me suggestions to resolve this exception.</p>