如何使用Javamail访问其他邮箱(IMAP,Exchange 2010)

时间:2012-07-30 10:01:45

标签: javamail exchange-server

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

用户:user1(user1@domain.com) pwd:xxxx

共享邮箱:shared_MB@domain.com

我设法访问了user1 - mailbox:

    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

username = user1@domain.com

密码= xxxx

- >这工作得很好!但现在我想通过更改login-String:

来访问其他邮箱

username=user1@domain.com/shared_MB

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

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

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

1 个答案:

答案 0 :(得分:4)

我正在做以下事情,它对我来说很好用

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 \\塔伦\\ shared_MB

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