이상한 문제가 있습니다. IMAP을 통해 Gmail 서버에 연결하고 있습니다. 첫 번째 시도에 잘 연결됩니다. 그러나 상점을 두 번째로에 연결하면 예외가 발생합니다. 도와주세요. 아래는 내가 사용한 코드입니다.Android에서 Java Mail 예외가 발생했습니다.
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
try {
Properties properties = new Properties();
properties.setProperty("mail.store.protocol", "imaps");
// properties.setProperty("mail.imaps.socketFactory.fallback", "false");
// set this session up to use SSL for IMAP connections
properties.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.imaps.socketFactory.fallback", "false");
// use the simap port for imap/ssl connections.
// properties.setProperty("mail.imap.socketFactory.port", "993");
URLName url = new URLName("imap", _INCOMINGMAILSERVER, 993, "", _USERNAME, _PASSWORD);
Session session = Session.getInstance(properties,null);
session.setDebug(true);
//Store store = session.getStore("imaps");
Store store = new IMAPSSLStore(session, url);
if (store.isConnected()) {
Log.v("Connected", "TRUE");
} else {
Log.v("Connected", "FALSE");
/*
* store.connect(_OUTGOINGMAILSERVER, _USERNAME, _PASSWORD); if
* (store.isConnected()) store.close();
*/
Log.v("INCOMING SERVER", _INCOMINGMAILSERVER);
//store.connect(_INCOMINGMAILSERVER, _USERNAME, _PASSWORD);
store.connect();
}
connected = true;
예외
================== 1월 5일부터 15일까지 : 31 : 50.765 : System.err에/W (19,008) : javax.mail.MessagingException : SSL 핸드 셰이크가 중단되었습니다. ssl = 0x2a8e5238 : 시스템 호출 중 I/O 오류, 피어에 의한 연결 재설정, 05-15 01 : 31 : 50.765 : W/System.err (19008) : javax.net.ssl.SSLException : 0-15 01 : 31 : 50.765 : W/System.err (19008) SSL 핸드 셰이크가 중단되었습니다. ssl = 0x2a8e5238 : 시스템 호출 중 I/O 오류 피어에 의한 연결 재설정 05-15 01 : 31 : 50.765 : W/System.err (19008) : com.sun.mail.imap. IMAPStore.protocolConnect (IMAPStore.java:571) 05-15 01 : 31 : 50.765 : System.err (19008) : 에서 javax.mail.Service.connect (Service.java:288) 05-15 01 : 31 : 50.765 : W/System.err (19008) : javax.mail.Service.connect (Service.java:169) 05-15 01 : 31 : 50.765 : System.err (19008) : javax.mail.Service.connect (Service.java:118) 05-15 01 : 31 : 50.765 : 승/System.err (19008) : 012에com.dts.powermailmanager.Mailmanager._connectToImap (Mailmanager.java:218) 05-15 01 : 31 : 50.765 : W/System.err (19008) : com.dts.powermailmanager.Mailmanager.connect (Mailmanager. java : 365) 05-15 01 : 31 : 50.765 : W/System.err (19008) : 에서 com.dts.classes.PowermailAsync.doInBackground (PowermailAsync.java:157) 05-15 01 : 31 : 50.769 : W/System.err (19008) : com.dts.classes.PowermailAsync.doInBackground (PowermailAsync.java:1) 05-15 01 : 31 : 50.769 : W/System.err (19008) : android .os.AsyncTask $ 2.call (AsyncTask.java:287) 05-15 01 : 31 : 50.781 : 승/System.err (19008) : java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java : 305) 05- 15 01 : 31 : 50.781 : W/System.err (19008) : 에서 java.util.concurrent.FutureTask.run (FutureTask.java:137) 05-15 01 : 31 : 50.781 : W/System.err 19008) : android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:230) 05-15 01 : 31 : 50.781 : W/System.err (19008) : 에서 java.util.concurrent.ThreadPoolExecutor .runWorker (ThreadPoolExecutor.java:1076) 05-15 01 : 31 : 50.781 : W/System.err (19008) : 에서 java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:569) 05 -15 01 : 31 : 50.781 : W/System.err (19008) : 에서 java.lang.Thread.run (Thread.java:856) 05-15 01 : 31 : 50.781 : W/System.err (19008) : 원인 : javax.net.ssl.SSLException : SSL 핸드 셰이크가 중단되었습니다. ssl = 0x2a8e5 238 : 시스템 호출 중 입출력 오류 피어에 의한 연결 재설정 05-15 01 : 31 : 50.796 : W/System.err (19008) : 에서 org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake (기본 메서드) 05-15 01 : 31 : 50.796 : W/System.err (19008) : 에서 org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake (OpenSSLSocketImpl.java:395) 05- 15 01 : 31 : 50.796 : W/System.err (19008) : 에서 org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl $ SSLInputStream (OpenSSLSocketImpl.java:647) 05-15 01 : 31 : 50.796 : W/System.err (19008) : 에서 org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream (OpenSSLSocketImpl.java : 618) 05-15 01 : 31 : 50.796 : W/System.err (19008) : 에서 com.sun.mail.iap.Protocol.initStreams (Protocol.java:132) 05-15 01:31 : 50.796 : W/System.err (19008) : com.sun.mail.iap.Protocol. (Protocol.java:111) 05-15 01 : 31 : 50.796 : W/System.err (19008) : com.sun.mail.imap.protocol.IMAPProtocol. (IMAPProtocol.java:104) 05-15 01 : 31 : 50.800 : W/System.err (19008) : com.sun.mail.imap. IMAPStore.protocolConnect 05-15 01 (IMAPStore.java:538) : 31 : 50.800 : W/System.err에 (19,008) NOW I 이것을 사용하고 14 ... 더
OK -
Properties properties = new Properties();
properties.setProperty("mail.store.protocol", "imaps");
Session session = Session.getInstance(properties,null);
session.setDebug(true);
Store store = session.getStore("imaps");
store.connect(_INCOMINGMAILSERVER, _USERNAME, _PASSWORD);
메시지를 남긴 후 저장소를 닫습니다.
두 번째로 연결하는 동안 여전히 같은 오류가 발생합니다. 두 번째 연결하는 동안 서버가 응답하지 않거나 포트가 다소 바쁜 것 같습니다. 나는 그것을 이해할 수 없다.
을 사용하여 서버/호스트 이름 프로토콜 지원을 확인할 수 있습니다. Properties properties = new Properties(); properties.setProperty ("mail.store.protocol", "imaps"); – saikat
ok 위 코드를 확인하십시오. 질문을 수정했습니다. 그러나 여전히 같은 오류 – saikat
성공적으로 연결은되었지만 위의 예외와 정확히 같은 두 번째 시도에서 실패합니까? 나는 그것이 왜 일어날 지 상상할 수 없다. 아마도 코드에 뭔가 다른 것이있을 것입니다. JavaMail 디버그 결과는 무엇을 보여줍니까? –