Javamail, Weblogic, IMAP, SSL и Exchange 2010 - PullRequest
0 голосов
/ 18 января 2011

прежде всего, извините за мой английский (я из Испании)

Я пытаюсь подключиться к почтовому серверу Exchange 2010 с IMAP и SSL из Javamail внутри сервера Weblogic 8.1.

Это мой код

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

На этом этапе я получаю javax.mail.AuthenticationFailedException: Команда получена в недопустимом состоянии .Параметр user является комбинацией «домен \ пользователь-логин \ почтовый-псевдоним».Я использую это, потому что я видел это таким образом в практическом руководстве.Я уже установил действительный сертификат SSL на моем сервере Weblogic.

Я не знаю, где ошибка.

При отладке я получаю следующее:

DEBUG: getProvider () возвращение javax.mail.Provider [STORE, imap, com.sun.mail.imap.IMAPStore, Sun Microsystems, Inc]

OK Служба Microsoft Exchange IMAP4 готова.

A0 CAPABILITY

CAPABILITY IMAP4 IMAP4rev1 LOGINDISABLED STARTTLS IDLE ИМЕНИ ПРОГРАММЫ ДЕТЕЙ +

A0 ОК CAPABILITY завершено.

A1 LOGIN «домен \ пользователь \ mailbox-alias» пароль

* 1027A1 BAD Команда получена в недопустимом состоянии.

ОШИБКА 2: javax.mail.AuthenticationFailedException: Команда получена в недопустимом состоянии.

Ответы [ 3 ]

2 голосов
/ 18 января 2011

Если вы используете порт 993, вы хотите imaps вместо imap в качестве протокола:

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

По порту 143 соединение в виде открытого текста. Затем можно при желании запустить уровень шифрования TLS, введя команду STARTTLS IMAP. (Это то, что контролируется свойством mail.imap.starttls.enable.)

На порту 993 начальное соединение должно быть зашифрованным соединением SSL. Это рукопожатие SSL должно быть сделано до того, как текст будет отправлен или получен с сервера.

0 голосов
/ 10 февраля 2011

Наконец-то я решил эту проблему. Это была проблема версии javamail, она была слишком старой для Exchange 2010. Я обновился до версии 1.4 и работал. До сих пор я использовал Javamail 1.1.3.

0 голосов
/ 18 января 2011

Убедитесь, что в Exchange 2010 разрешены входы на основе пользователя / pwd.

...