在其他答案的帮助下,我想出了以下解决方案,适用于 com.sun.mail:javax.mail:1.6.2
Properties props = new Properties();
props.setProperty("mail.imaps.auth.mechanisms", "LOGIN");
Session session = Session.getInstance(props);
Store store = session.getStore("imaps");
store.connect("outlook.office365.com", 993, "user@xyz.com\\shared_account_alias", "user_password");
使用 javax.mail:mail:1.4.7 以下代码有效:
Properties props = new Properties();
props.setProperty("mail.imaps.auth.plain.disable", "true");
Session session = Session.getInstance(props);
Store store = session.getStore("imaps");
store.connect("outlook.office365.com", 993, "user@xyz.com\\shared_account_alias", "user_password");
shared_account_alias 不是电子邮件地址。
最终我找到了一种更标准的访问共享邮箱的方法:
Properties props = new Properties();
props.setProperty("mail.imaps.sasl.enable", "true");
props.setProperty("mail.imaps.sasl.authorizationid", "shared_account_alias");
Session session = Session.getInstance(props);
Store store = session.getStore("imaps");
store.connect("outlook.office365.com", 993, "user@xyz.com", "user_password");