java - Javamail:如何使用多因素身份验证连接到 Outlook.com?
问题描述
Javamail:如何使用多因素身份验证连接到 Outlook.com?
以下代码不起作用。也尝试过誓言属性,但没有成功
Google 说了一些与 OAuth 相关的内容:
Properties props = new Properties();
props.setProperty("mail.store.protocol", PROTOCOL);
if(ENCRYPTION_TYPE.length() > 0 && !ENCRYPTION_TYPE.equalsIgnoreCase("none")) {
if(PROTOCOL.equalsIgnoreCase("imap")) {
props.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.imap.socketFactory.fallback", "false");
// props.setProperty("mail.imap.ssl.enable", "true");
props.setProperty("mail.imap.socketFactory.port", PORT.length() > 0 ? PORT : "993");
if(ENCRYPTION_TYPE.equalsIgnoreCase("tls")) {
props.setProperty("mail.imap.starttls.enable", "true");
}
}
else if(PROTOCOL.equalsIgnoreCase("pop3")) {
props.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.ssl.enable", "true");
props.setProperty("mail.pop3.socketFactory.port", PORT.length() > 0 ? PORT : "995");
if(ENCRYPTION_TYPE.equalsIgnoreCase("tls")) {
props.setProperty("mail.pop3.starttls.enable", "true");
}
}
}
try {
Session session = Session.getInstance(props, null);
session.setDebug(true);
Store store = session.getStore();
store.connect(HOST, USER, PASSWORD);
printAllFolders(store);
IMAPFolder inbox = (IMAPFolder) store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Properties props = new Properties();
props.put("mail.imap.ssl.enable", "true"); // required for Gmail
props.put("mail.imap.sasl.enable", "true");
props.put("mail.imap.sasl.mechanisms", "XOAUTH2");
props.put("mail.imap.auth.login.disable", "true");
props.put("mail.imap.auth.plain.disable", "true");
Session session = Session.getInstance(props);
Store store = session.getStore("imap");
store.connect("imap.gmail.com", username, oauth2_access_token);
我只有我的电子邮件和密码。但我无法从谁那里得到什么?