Java 邮件委托访问不适用于 Office 365

Java Mail Delegation Access not working for Office 365

如果您看到注释的代码行 store.connect...我正在尝试通过用户邮箱 [迁移到云] 访问共享邮箱,该邮箱对此共享邮箱具有委托访问权限。在 运行 上,我得到

javax.mail.AuthenticationFailedException: LOGIN failed.
  at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:715)
  at javax.mail.Service.connect(Service.java:364)
  at com.adecco.smpt.TestSSL.main(TestSSL.java:26)

如果我尝试访问用户邮箱而不是共享邮箱一切正常。是否有不同的语法来访问 JAVA 中的共享邮箱??提前致谢。

import java.util.Properties;
import javax.mail.*;

public class TestSSL {

    public static void main(String[] args) {

        Properties props = System.getProperties();
        props.put("mail.imaps.auth.plain.disable", "true");
        props.put("mail.smtp.ssl.enable", "true");
        try {
            Session session = Session.getInstance(props, null);
            session.setDebug(true);
            Store store = session.getStore("imaps");

            store.connect("outlook.office365.com", 993, "office 365 username/alias name of shared MAILBOX", "PASSWORD");

            System.out.println(store);
            Folder inbox = store.getFolder("Inbox");
            inbox.open(Folder.READ_ONLY);
            Message messages[] = inbox.getMessages();
            for (Message message : messages) {
                System.out.println(message);
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(2);
        }
    }
}

首先,修复这些 common mistakes

看起来 this article 有您需要的信息。