2017-10-26 4 views
0

Ich versuche, E-Mail von Mail Server mit JAVA zu lesen. Ich habe das IMAP-Protokoll dafür verwendet.E-Mail kann nicht mit IMAP in JAVA gelesen werden.

Jedes Mal, wenn ich Anfrage zum Lesen einer E-Mail senden, wirft es mich Ausnahme: javax.mail.MessagingException: Unerkannte SSL-Nachricht, Klartextverbindung?

Hier ist mein Code;

public void readEmail() throws Exception { 
    sessionIMAP = setupImap(); 
    Store store = sessionIMAP.getStore("imap"); 
    store.connect("localhost", 1143, "username", "password"); 
    if (store.isConnected()) { 
     System.out.println("IMAP is connected"); 
    } else { 
     System.out.println("IMAP is not connected"); 
    } 

} 

private Session setupImap() { 
    System.out.println("in setupImap"); 
    Session session1; 
    Properties props = new Properties(); 
    props.put("mail.imap.starttls.enable", "true"); 
    //props.put("mail.imaps.ssl.enable", "true"); 
    //props.put("mail.imaps.auth", "true"); 
    //props.put("mail.imaps.ssl.trust", "*"); 
    props.put("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    props.put("mail.imap.socketFactory.fallback", "false"); 
    props.put("mail.imap.host", "localhost"); 
    props.put("mail.imap.port", 1143); 
    props.put("mail.imap.socketFactory.port", 1143); 
    props.setProperty("mail.store.protocol", "imap"); 
    props.put("mail.debug", "true"); 
    //props.put("mail.imaps.class", "com.sun.mail.imap.IMAPSSLStore"); 
    session1 = Session.getInstance(props, null); 
    //setupIMAPMsgTypeSetupForReportedIssue(); 
    return session1; 
} 

Hier ist die vollständige Ausnahme erhalte ich:

DEBUG: JavaMail version 1.4.6 
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers 
DEBUG: Tables of loaded providers 
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]} 
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]} 
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map 
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle] 
DEBUG IMAP: mail.imap.fetchsize: 16384 
DEBUG IMAP: mail.imap.ignorebodystructuresize: false 
DEBUG IMAP: mail.imap.statuscachetimeout: 1000 
DEBUG IMAP: mail.imap.appendbuffersize: -1 
DEBUG IMAP: mail.imap.minidletime: 10 
DEBUG IMAP: enable STARTTLS 
DEBUG IMAP: trying to connect to host "localhost", port 1143, isSSL false 
Invalid Args: read_Email 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.thalesifec.framework.tool.support.FwkAnnotatedTools$FwkToolClassInfo.execute(FwkAnnotatedTools.java:103) 
    at com.thalesifec.framework.tool.support.interactive.ConsoleInterface.handleToolSelected(ConsoleInterface.java:217) 
    at com.thalesifec.framework.tool.support.interactive.ConsoleInterface.interactiveCommandLoop(ConsoleInterface.java:113) 
    at com.thalesifec.framework.tool.support.interactive.ConsoleInterface.noArgsStart(ConsoleInterface.java:271) 
    at com.thalesifec.framework.tool.support.interactive.ConsoleInterface.delegateCommand(ConsoleInterface.java:295) 
    at com.thalesifec.framework.connectivitymanager.simulator.Main.main(Main.java:28) 
Caused by: javax.mail.MessagingException: Unrecognized SSL message, plaintext connection?; 
    nested exception is: 
    javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 
    at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:670) 
    at javax.mail.Service.connect(Service.java:295) 
    at com.thalesifec.framework.connectivitymanager.simulator.plugins.EMBATLTestTool.readEmail(EMBATLTestTool.java:136) 
    ... 10 more 
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 
    at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710) 
    at sun.security.ssl.InputRecord.read(InputRecord.java:527) 
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) 
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) 
    at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549) 
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:354) 
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211) 
    at com.sun.mail.iap.Protocol.<init>(Protocol.java:116) 
    at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:115) 
    at com.sun.mail.imap.IMAPStore.newIMAPProtocol(IMAPStore.java:685) 
    at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:636) 
    ... 12 more 

Könnten Sie bitte lassen Sie mich wissen, was ich falsch mache?

Vielen Dank im Voraus

+0

Haben Sie Prüfung: https://stackoverflow.com/questions/36590597/unable-to-send-mail-javax-net-ssl-sslexception-unrecognized-ssl-message- plai –

+0

Sie führen einen lokalen IMAP-Server aus und Sie haben ihn nicht für die Verwendung von SSL (dem Server) konfiguriert. –

+0

Während du Dinge reparierst, [beseitige alle Socket Factory-Sachen] (https://javaee.github.io/javamail/FAQ#commonmistakes) und [upgrade auf eine neuere Version von JavaMail] (https://javaee.github.io/javamail/). –

Antwort

0

kommentierte ich aus dem Code unter der Linie und es funktionierte!

props.put("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 

Danke

Verwandte Themen