Hi, I have configured James mail server with TLS by uncommenting <useTLS> tags in smtpserver & pop3server blocks and configuring the socket manager as below <sockets> <server-sockets> <factory name="plain" class="org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory"/> <factory name="ssl" class="org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory"> <ssl-factory> <keystore> <file>conf/thotap.jks</file> <password>changeit</password> <key-password>changeit</key-password> <type>JKS</type> <protocol>TLS</protocol> <algorithm>SunX509</algorithm> <authenticate-client>false</authenticate-client> </keystore> </ssl-factory> </factory> </server-sockets> <client-sockets> <factory name="plain" class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketFactory"/> </client-sockets> </sockets>
It looks like it has started without any issues. But when I try to create mail store using mail store, it is throwing the exception "java.net.SocketException: Software caused connection abort: recv failed". Here is the protocol trace DEBUG: setDebug: JavaMail version 1.4.3 DEBUG: getProvider() returning javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc] DEBUG POP3: connecting to host "inenthotapl1c", port 995, isSSL true keyStore is : keyStore type is : jks keyStore provider is : init keystore init keymanager of type SunX509 trustStore is: C:\Java\jdk1.6.0_18\jre\lib\security\cacerts trustStore type is : jks trustStore provider is : init truststore adding as trusted cert: Subject: CN=inenthotapl1c Issuer: CN=inenthotapl1c Algorithm: RSA; Serial number: 0x4d0b797f Valid from Fri Dec 17 20:23:51 IST 2010 until Thu Mar 17 20:23:51 IST 2011 adding as trusted cert: Subject: CN=UTN-USERFirst-Hardware, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US Issuer: CN=UTN-USERFirst-Hardware, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US Algorithm: RSA; Serial number: 0x44be0c8b500024b411d3362afe650afd Valid from Fri Jul 09 23:40:42 IST 1999 until Tue Jul 09 23:49:22 IST 2019 adding as trusted cert: Subject: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3 Issuer: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3 Algorithm: RSA; Serial number: 0x4000000000121585308a2 Valid from Wed Mar 18 15:30:00 IST 2009 until Sun Mar 18 15:30:00 IST 2029 adding as trusted cert: Subject: CN=VeriSign Class 1 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Issuer: CN=VeriSign Class 1 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US Algorithm: RSA; Serial number: 0x8b5b75568454850b00cfaf3848ceb1a4 Valid from Fri Oct 01 05:30:00 IST 1999 until Thu Jul 17 05:29:59 IST 2036 adding as trusted cert: Subject: CN=America Online Root Certification Authority 1, O=America Online Inc., C=US Issuer: CN=America Online Root Certification Authority 1, O=America Online Inc., C=US Algorithm: RSA; Serial number: 0x1 Valid from Tue May 28 11:30:00 IST 2002 until Fri Nov 20 02:13:00 IST 2037 adding as trusted cert: Subject: OU=Security Communication RootCA2, O="SECOM Trust Systems CO.,LTD.", C=JP Issuer: OU=Security Communication RootCA2, O="SECOM Trust Systems CO.,LTD.", C=JP Algorithm: RSA; Serial number: 0x0 Valid from Fri May 29 10:30:39 IST 2009 until Tue May 29 10:30:39 IST 2029 adding as trusted cert: Subject: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA Issuer: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA Algorithm: RSA; Serial number: 0x0 Valid from Wed Jan 01 05:30:00 IST 1997 until Fri Jan 01 05:29:59 IST 2021 adding as trusted cert: Subject: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net Issuer: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net Algorithm: RSA; Serial number: 0x3863b966 Valid from Fri Dec 24 23:20:51 IST 1999 until Tue Dec 24 23:50:51 IST 2019 adding as trusted cert: Subject: CN=GTE CyberTrust Root 5, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US Issuer: CN=GTE CyberTrust Root 5, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US Algorithm: RSA; Serial number: 0x1b6 Valid from Fri Aug 14 20:20:00 IST 1998 until Thu Aug 15 05:29:00 IST 2013 adding as trusted cert: Subject: CN=UTN-USERFirst-Object, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US Issuer: CN=UTN-USERFirst-Object, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US Algorithm: RSA; Serial number: 0x44be0c8b500024b411d3362de0b35f1b Valid from Sat Jul 10 00:01:20 IST 1999 until Wed Jul 10 00:10:36 IST 2019 adding as trusted cert: Subject: CN=UTN - DATACorp SGC, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US Issuer: CN=UTN - DATACorp SGC, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US Algorithm: RSA; Serial number: 0x44be0c8b500021b411d32a6806a9ad69 Valid from Fri Jun 25 00:27:21 IST 1999 until Tue Jun 25 00:36:30 IST 2019 adding as trusted cert: Subject: CN=Sonera Class2 CA, O=Sonera, C=FI Issuer: CN=Sonera Class2 CA, O=Sonera, C=FI Algorithm: RSA; Serial number: 0x1d Valid from Fri Apr 06 12:59:40 IST 2001 until Tue Apr 06 12:59:40 IST 2021 adding as trusted cert: Subject: CN=TC TrustCenter Class 2 CA II, OU=TC TrustCenter Class 2 CA, O=TC TrustCenter GmbH, C=DE Issuer: CN=TC TrustCenter Class 2 CA II, OU=TC TrustCenter Class 2 CA, O=TC TrustCenter GmbH, C=DE Algorithm: RSA; Serial number: 0x2e6a000100021fd752212c115c3b Valid from Thu Jan 12 20:08:43 IST 2006 until Thu Jan 01 04:29:59 IST 2026 trigger seeding of SecureRandom done seeding SecureRandom main, setSoTimeout(30000) called %% No cached client session *** ClientHello, TLSv1 RandomCookie: GMT: 1292535513 bytes = { 80, 149, 82, 71, 48, 28, 7, 48, 62, 89, 98, 107, 69, 243, 218, 66, 242, 252, 246, 151, 251, 224, 111, 128, 151, 108, 212, 216 } Session ID: {} Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA] Compression Methods: { 0 } *** main, WRITE: TLSv1 Handshake, length = 73 main, READ: TLSv1 Handshake, length = 510 *** ServerHello, TLSv1 RandomCookie: GMT: 1292535513 bytes = { 172, 115, 215, 117, 107, 95, 2, 232, 211, 91, 109, 40, 21, 150, 192, 39, 130, 119, 132, 205, 20, 146, 28, 221, 171, 237, 250, 42 } Session ID: {77, 11, 135, 217, 148, 28, 74, 88, 12, 70, 50, 90, 153, 42, 152, 221, 27, 209, 17, 18, 196, 27, 159, 161, 126, 179, 202, 179, 121, 143, 103, 159} Cipher Suite: SSL_RSA_WITH_RC4_128_MD5 Compression Method: 0 *** %% Created: [Session-1, SSL_RSA_WITH_RC4_128_MD5] ** SSL_RSA_WITH_RC4_128_MD5 *** Certificate chain chain [0] = [ [ Version: V1 Subject: CN=inenthotapl1c Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4 Key: Sun RSA public key, 1024 bits modulus: 100746153626772380323303648658870070106863391015695246025204815976287595495907058283516121160001124559621739363730729057670951189969880962173035638241125927007904648572639604211500921898265691580498056772247017875596545782618773771012080708411850537554023805618091783458960955941721838725823477579438664531497 public exponent: 65537 Validity: [From: Fri Dec 17 20:23:51 IST 2010, To: Thu Mar 17 20:23:51 IST 2011] Issuer: CN=inenthotapl1c SerialNumber: [ 4d0b797f] ] Algorithm: [MD5withRSA] Signature: 0000: 7F A1 66 C4 A3 15 AB D7 A0 50 A6 FF DB 00 1A 1E ..f......P...... 0010: BC B5 49 2C 7C 1A 42 24 27 E0 84 95 6C 39 6D FE ..I,..B$'...l9m. 0020: 87 B5 10 63 BA ED 87 95 B5 D5 0D 69 BE F8 63 E6 ...c.......i..c. 0030: 5E 72 78 AA 39 87 5B EC 74 03 7B 3E DA 8C F3 14 ^rx.9.[.t..>.... 0040: A7 2E 25 72 7A ED 06 DF A9 D4 CC 54 A0 AC 52 C5 ..%rz......T..R. 0050: B9 09 04 1E 64 1A E0 E6 98 31 E8 15 23 88 77 FD ....d....1..#.w. 0060: 27 85 B9 38 94 E0 4B DD 97 FE B8 54 7D C4 71 E3 '..8..K....T..q. 0070: 97 F7 04 C3 6E 69 48 CE 9D 03 52 34 C9 E9 40 68 ....nih...r...@h ] *** Found trusted certificate: [ [ Version: V1 Subject: CN=inenthotapl1c Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4 Key: Sun RSA public key, 1024 bits modulus: 100746153626772380323303648658870070106863391015695246025204815976287595495907058283516121160001124559621739363730729057670951189969880962173035638241125927007904648572639604211500921898265691580498056772247017875596545782618773771012080708411850537554023805618091783458960955941721838725823477579438664531497 public exponent: 65537 Validity: [From: Fri Dec 17 20:23:51 IST 2010, To: Thu Mar 17 20:23:51 IST 2011] Issuer: CN=inenthotapl1c SerialNumber: [ 4d0b797f] ] Algorithm: [MD5withRSA] Signature: 0000: 7F A1 66 C4 A3 15 AB D7 A0 50 A6 FF DB 00 1A 1E ..f......P...... 0010: BC B5 49 2C 7C 1A 42 24 27 E0 84 95 6C 39 6D FE ..I,..B$'...l9m. 0020: 87 B5 10 63 BA ED 87 95 B5 D5 0D 69 BE F8 63 E6 ...c.......i..c. 0030: 5E 72 78 AA 39 87 5B EC 74 03 7B 3E DA 8C F3 14 ^rx.9.[.t..>.... 0040: A7 2E 25 72 7A ED 06 DF A9 D4 CC 54 A0 AC 52 C5 ..%rz......T..R. 0050: B9 09 04 1E 64 1A E0 E6 98 31 E8 15 23 88 77 FD ....d....1..#.w. 0060: 27 85 B9 38 94 E0 4B DD 97 FE B8 54 7D C4 71 E3 '..8..K....T..q. 0070: 97 F7 04 C3 6E 69 48 CE 9D 03 52 34 C9 E9 40 68 ....nih...r...@h ] *** ServerHelloDone *** ClientKeyExchange, RSA PreMasterSecret, TLSv1 main, WRITE: TLSv1 Handshake, length = 134 SESSION KEYGEN: PreMaster Secret: 0000: 03 01 2A CF 2C 62 D8 65 FB 77 4E 91 02 6B EA 22 ..*.,b.e.wN..k." 0010: 02 CB 4C 71 29 17 52 77 80 4F 53 4A 1B 6C 1C 20 ..Lq).Rw.OSJ.l. 0020: 07 52 0E C4 D3 FB 7E 23 C2 34 BC ED 8A 34 9D BB .R.....#.4...4.. CONNECTION KEYGEN: Client Nonce: 0000: 4D 0B 87 D9 50 95 52 47 30 1C 07 30 3E 59 62 6B M...P.RG0..0>Ybk 0010: 45 F3 DA 42 F2 FC F6 97 FB E0 6F 80 97 6C D4 D8 E..B......o..l.. Server Nonce: 0000: 4D 0B 87 D9 AC 73 D7 75 6B 5F 02 E8 D3 5B 6D 28 M....s.uk_...[m( 0010: 15 96 C0 27 82 77 84 CD 14 92 1C DD AB ED FA 2A ...'.w.........* Master Secret: 0000: 62 BC 9F BB ED C9 58 E2 E3 18 EE 06 E6 0F 97 4F b.....X........O 0010: 59 72 B0 0C 13 EE CD 93 BF 22 A8 C9 BE 94 C5 BB Yr......."...... 0020: A9 5B BC 14 6B 9A 92 4F 60 83 2C B4 5D 34 8C 7A .[..k..O`.,.]4.z Client MAC write Secret: 0000: E1 B0 A3 D9 56 B9 05 59 DF AC 59 FE D5 E9 2B 4B ....V..Y..Y...+K Server MAC write Secret: 0000: 1D E6 10 7E 7E 65 20 F0 9C AF 95 87 A1 FE 9A 43 .....e ........C Client write key: 0000: 60 3E EB 94 C9 05 22 19 1F B3 A7 97 2C 2F E5 52 `>....".....,/.R Server write key: 0000: A6 B9 9A C6 E7 10 76 63 AD 51 AD 0C 19 3F F5 4A ......vc.Q...?.J ... no IV used for this cipher main, WRITE: TLSv1 Change Cipher Spec, length = 1 *** Finished verify_data: { 171, 150, 237, 61, 115, 89, 84, 195, 40, 197, 113, 109 } *** main, WRITE: TLSv1 Handshake, length = 32 main, handling exception: java.net.SocketException: Software caused connection abort: recv failed 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:176) at javax.mail.Service.connect(Service.java:291) at com.prasad.mail.utils.EmailReaderUtils.createEmailStore(EmailReaderUtils.java:88) at com.prasad.mail.utils.EmailReaderUtilsTest.testCreateEmailStore(EmailReaderUtilsTest.java:36) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59) at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98) at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87) at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77) at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42) at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88) at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51) at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37) at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42) at com.intellij.rt.junit4.Junit4TestMethodAdapter.run(Junit4TestMethodAdapter.java:49) at junit.textui.TestRunner.doRun(TestRunner.java:116) at com.intellij.rt.execution.junit.IdeaTestRunner.doRun(IdeaTestRunner.java:65) at junit.textui.TestRunner.doRun(TestRunner.java:109) at com.intellij.rt.execution.junit.IdeaTestRunner.startRunnerWithArgs(IdeaTestRunner.java:24) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:118) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) 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:129) at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293) at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123) at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:503) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:234) at com.sun.mail.pop3.Protocol.<init>(Protocol.java:98) at com.sun.mail.pop3.POP3Store.getPort(POP3Store.java:227) at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:172) ... 31 more And also I am not able to configure in OutLook also as it is not able to connect to the server. Any pointers to trace out the issue or resolution is greatly appreciated. Thanks, Prasad