title: Java Mail get mails with pop3 from exchange server => Exception in thread "main" javax.mail.MessagingException
body: <p>Following code to get mails from an exchange email account:</p>
  
  <pre><code>public class TicketMain {
  
      /**
       * @param args
       */
      public static void main(String[] args) throws Exception {
          final Properties props = new Properties();
  
          //XTrustProvider.install();
  
         // System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", true);
  
          props.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
          props.setProperty("mail.pop3.socketFactory.fallback", "false");
          props.setProperty( "mail.pop3.host", "10.30.0.103" );
          props.setProperty( "mail.pop3.user", "xxxx");
          props.setProperty( "mail.pop3.password", "xxxx!");
          props.setProperty( "mail.pop3.ssl.enable", "true");
          props.setProperty( "mail.pop3.port", "445" );
          props.setProperty( "mail.pop3.auth", "true" );      
          props.setProperty("mail.pop3.starttls.enable", "false"); 
         /* props.setProperty( "mail.pop3.starttls.enable", "true" );
          props.setProperty( "mail.pop3.starttls.required", "true" );*/
  
          Session session  = Session.getInstance(props);
          session.setDebug(true);
  
  
  
          Store store = session.getStore("pop3");
          store.connect("xxxx", "xxxx!");         
          Folder folder = store.getDefaultFolder();
          folder.open(Folder.READ_ONLY);
          Message message[] = folder.getMessages();
          for ( int i = 0; i &lt; message.length; i++ )
          {
            Message m = message[i];
                System.out.println( "-------------------------\nNachricht: " + i );
                System.out.println( "From: " + Arrays.toString(m.getFrom()) );
                System.out.println( "Topic: " + m.getSubject() );   
  
  
            if ( m.isMimeType("text/plain") )
              System.out.println( m.getContent() );
          }
          folder.close( false );
          store.close();
  
      }
  
  }
  </code></pre>
  
  <p>When executing this application I get following error:</p>
  
  <pre><code>DEBUG: setDebug: JavaMail version 1.5.2
  DEBUG: getProvider() returning javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]
  DEBUG POP3: mail.pop3.rsetbeforequit: false
  DEBUG POP3: mail.pop3.disabletop: false
  DEBUG POP3: mail.pop3.forgettopheaders: false
  DEBUG POP3: mail.pop3.cachewriteto: false
  DEBUG POP3: mail.pop3.filecache.enable: false
  DEBUG POP3: mail.pop3.keepmessagecontent: false
  DEBUG POP3: mail.pop3.starttls.enable: false
  DEBUG POP3: mail.pop3.starttls.required: false
  DEBUG POP3: mail.pop3.apop.enable: false
  DEBUG POP3: mail.pop3.disablecapa: false
  DEBUG POP3: connecting to host "10.30.0.103", port 445, isSSL true
  keyStore is : 
  keyStore type is : jks
  keyStore provider is : 
  init keystore
  init keymanager of type SunX509
  trustStore is: C:\Program Files (x86)\Java\jdk1.7.0_02\jre\lib\security\cacerts
  trustStore type is : jks
  trustStore provider is : 
  init truststore
  trigger seeding of SecureRandom
  done seeding SecureRandom
  Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
  Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
  Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
  Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
  Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
  Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
  Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
  Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256
  Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA
  Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
  Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
  Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
  Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA
  Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256
  Allow unsafe renegotiation: true
  Allow legacy hello messages: true
  Is initial handshake: true
  Is secure renegotiation: false
  %% No cached client session
  *** ClientHello, TLSv1
  RandomCookie:  GMT: 1389798620 bytes = { 115, 122, 157, 36, 180, 32, 127, 18, 33, 140, 18, 51, 218, 143, 189, 173, 30, 232, 215, 2, 114, 58, 144, 193, 229, 138, 82, 162 }
  Session ID:  {}
  Cipher Suites: [TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA]
  Compression Methods:  { 0 }
  Extension elliptic_curves, curve names: {secp256r1, sect163k1, sect163r2, secp192r1, secp224r1, sect233k1, sect233r1, sect283k1, sect283r1, secp384r1, sect409k1, sect409r1, secp521r1, sect571k1, sect571r1, secp160k1, secp160r1, secp160r2, sect163r1, secp192k1, sect193r1, sect193r2, secp224k1, sect239k1, secp256k1}
  Extension ec_point_formats, formats: [uncompressed]
  ***
  main, WRITE: TLSv1 Handshake, length = 149
  main, handling exception: java.net.SocketException: Software caused connection abort: recv failed
  main, SEND TLSv1 ALERT:  fatal, description = unexpected_message
  main, WRITE: TLSv1 Alert, length = 2
  main, Exception sending alert: java.net.SocketException: Software caused connection abort: socket write error
  main, called closeSocket()
  Exception in thread "main" javax.mail.MessagingException: Connect failed;
    nested exception is:
      java.net.SocketException: Software caused connection abort: recv failed
      at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:213)
      at javax.mail.Service.connect(Service.java:364)
      at javax.mail.Service.connect(Service.java:245)
      at javax.mail.Service.connect(Service.java:265)
      at com.technisat.polarion.ticket.TicketMain.main(TicketMain.java:42)
  Caused by: java.net.SocketException: Software caused connection abort: recv failed
      at java.net.SocketInputStream.socketRead0(Native Method)
      at java.net.SocketInputStream.read(SocketInputStream.java:168)
      at java.net.SocketInputStream.read(SocketInputStream.java:121)
      at sun.security.ssl.InputRecord.readFully(InputRecord.java:312)
      at sun.security.ssl.InputRecord.read(InputRecord.java:350)
      at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
      at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
      at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
      at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
      at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:543)
      at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:348)
      at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:215)
      at com.sun.mail.pop3.Protocol.&lt;init&gt;(Protocol.java:112)
      at com.sun.mail.pop3.POP3Store.getPort(POP3Store.java:264)
      at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:207)
      ... 4 more
  </code></pre>
  
  <p>SSL certificate is already imported into java keystore.</p>
  
  <p>Whats wrong here?</p>
  
  <p><code>telnet host port</code> is working from client.</p>