Javamail -, Weblogic -, IMAP-SSL und Exchange 2010
zuerst, sorry für mein Deutsch (ich bin aus Spanien)
Ich versuche, eine Verbindung zu einem Exchange 2010 E-mail-server mit IMAP und SSL von Javamail innerhalb eines Weblogic 8.1 server.
Dies ist mein code
Properties prop = new Properties();
//IMAP
//Disable TLS
prop.setProperty("mail.imap.starttls.enable", "false");
//Use SSL
prop.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.imap.socketFactory.fallback", "false");
//Use port 993
prop.setProperty("mail.imap.port", "993");
prop.setProperty("mail.imap.socketFactory.port", "993");
prop.setProperty("mail.imaps.class", "com.sun.mail.imap.IMAPSSLStore");
Session session = Session.getDefaultInstance(prop);
session.setDebug(true);
Store store = session.getStore("imap");
store.connect(host, user, password);
An dieser Stelle, bekomme ich javax.E-mail.AuthenticationFailedException: empfangene Befehl in den Zustand "Ungültig".
Die Benutzer-parameter ist eine Kombination von "domain\user-login\ "mail-box-alias". Ich benutze das, weil ich sah es in dieser Weise in ein how-to guide.
Habe ich bereits installiert, ein gültiges SSL-certificade in meinem Weblogic Server.
Ich weiß nicht, wo der Fehler ist.
Mit debug bekomme ich diese:
DEBUG: getProvider() returning javax.E-mail.Provider[STORE,imap,com.Sonne.E-mail.imap.IMAPStore,Sun Microsystems, Inc]
OK Der Microsoft Exchange-IMAP4-Dienst ist bereit.
A0 FÄHIGKEIT
CAPABILITY IMAP4 IMAP4rev1 LOGINDISABLED STARTTLS KINDER IDLE-NAMESPACE LITERAL+
A0-OK CAPABILITY completed.
A1 LOGIN "Domäne\user\Postfach-alias" Passwort
A1 Befehl erhielt im Ungültigen Zustand.
2 FEHLER: javax.E-mail.AuthenticationFailedException: Befehl erhielt im Ungültigen Zustand.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit port 993, Sie wollen
imaps
stattimap
als Protokoll:Auf port 143, die Verbindung ist Klartext. Sie können dann wahlweise starten Sie eine TLS-Verschlüsselung Ebene durch die Ausstellung der
STARTTLS
IMAP-Befehl. (Das ist, was gesteuert durch diemail.imap.starttls.enable
Eigenschaft.)Auf port 993, der die erste Verbindung muss eine verschlüsselte SSL-Verbindung. Das SSL-handshake muss durchgeführt werden, bevor irgendein text gesendet oder vom server empfangen.
mail.debug
zutrue
und sehen, was gedruckt wird auf stdout ausgegeben. Sie sollten eine Zeile sehen, sagenDEBUG: Tables of loaded providers
gefolgt von einer Reihe von Einträgen, von denen sollte fürimaps
. Wenn alle Stricke reißen, können Sie versuchen, die Eigenschaftmail.imaps.class
zucom.sun.mail.imap.IMAPSSLStore
.DEBUG
dump aus, wenn Sie Sie ausführen...prop.setProperty("mail.imap.starttls.enable", "false");
-- da bist du nicht eigentlich mitimaps
Sie gehen zu müssen, um zu ermöglichenSTARTTLS
.Stellen Sie sicher, dass Exchange 2010 ist eingestellt, dass user/pwd-basierte logins.
Schließlich habe ich dieses Problem behoben. Es war ein problem, javamail version war zu alt für Exchange 2010. Ich aufgerüstet auf version 1.4 und arbeitete. Bis jetzt war ich mit Javamail 1.1.3.