3

我想通过 Javamail API (1.4.5) 使用 IMAP(s) 和普通登录访问共享邮箱 (NOT FOLDER)。邮件服务器是 Exchange Server 2010。

用户:user1 (user1@domain.com) 密码:xxxx

共享邮箱:shared_MB@domain.com

我设法访问了 user1 - 邮箱:

    Session session = Session.getInstance(properties, new ExchangeAuthenticator(username, password));
        session.setDebug(true);

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

        store.connect(imapHost, username, password);

特性:

mail.imaps.socketFactory.port = 993

mail.imaps.starttls.enable = true

mail.imaps.socketFactory.class = javax.net.ssl.SSLSocketFactory

mail.imaps.socketFactory.fallback = false

用户名 = user1@domain.com

密码 = xxxx

--> 这很好用!但现在我想通过更改登录字符串来访问附加邮箱:

用户名=user1@domain.com/shared_MB

--> 不幸的是,我收到一条“NO AUTHENTICATE”消息:

   DEBUG IMAP: AUTHENTICATE PLAIN command result: A1 NO AUTHENTICATE failed.

我能够使用 Thunderbird 访问,所以我认为我的代码中缺少一些东西......

4

1 回答 1

6

我正在执行以下操作,对我来说效果很好

properties = System.getProperties();
properties.setProperty("mail.imaps.auth.plain.disable", "true");
properties.setProperty("mail.imaps.auth.ntlm.disable", "true");
Session session = Session.getInstance(properties, null);
store = session.getStore("imaps");
store.connect("HOST", PORT, "DOMAIN\\USER\\SHAREDACCOUNT","pwd");

这里 DOMAIN\\USER\\SHAREDACCOUNT 会是这样
的假设电子邮件帐户是 tarun@abc.com 然后
abc\\tarun\\shared_MB

您还必须输入 tarun@abc.com 帐户的密码。

于 2012-08-02T19:42:44.157 回答