Pregunta

En primer lugar, lo siento por mi Inglés (soy de España)

Estoy intentando conectar con un servidor de correo Exchange 2010 con IMAP y SSL de Javamail dentro de un servidor Weblogic 8.1.

Este es mi código

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);

En este punto, me sale javax.mail.AuthenticationFailedException: orden recibida en el estado no válido . El parámetro de usuario es una combinación de "dominio \ usuario de inicio de sesión \ buzón de correo-alias". Yo uso este porque lo vi de esta manera en una guía de cómo hacerlo. Ya instalado un certificade SSL válido en mi Weblogic Server.

No sé dónde está el error.

Con la depuración me sale esto:

DEBUG: GetProvider () devolver javax.mail.Provider [STORE, IMAP, com.sun.mail.imap.IMAPStore, Sun Microsystems, Inc]

El servicio es correcto IMAP4 de Microsoft Exchange está listo.

A0 CAPACIDAD

CAPACIDAD IMAP4 IMAP4rev1 LOGINDISABLED STARTTLS NIÑOS IDLE NAMESPACE LITERAL +

A0 OK CAPACIDAD completó.

A1 LOGIN "dominio \ usuario \ buzón de alias" contraseña

A1 BAD comando recibido en el estado no válido.

ERROR 2: javax.mail.AuthenticationFailedException: Comando recibido en el estado no válido.

¿Fue útil?

Solución 3

Finalmente he resuelto este problema. Era un problema de la versión Javamail, que era demasiado viejo para Exchange 2010. Me categoria a la versión 1.4 y trabajé. Hasta ahora estaba con JavaMail 1.1.3.

Otros consejos

Si está utilizando el puerto 993, que desea imaps en lugar de imap como su protocolo:

Store store = session.getStore("imaps");

En el puerto 143, la conexión es texto plano. A continuación, puede comenzar opcionalmente una capa de cifrado TLS mediante la emisión de la orden STARTTLS IMAP. (Eso es lo que controla la propiedad mail.imap.starttls.enable.)

En el puerto 993, la conexión inicial debe sea una conexión SSL cifrada. Este protocolo de enlace SSL se tiene que hacer antes de enviar cualquier texto o recibido del servidor.

Asegúrese de que Exchange 2010 está configurado para permitir que el usuario inicios de sesión basados ??/ PWD.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top