javax.mail.MessagingException: A3 BAD User is authenticated but not connected
<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>