我在尝试使用OAuth2.0的客户端凭据授予流程连接两个 IMAP 协议时遇到身份验证失败问题。在哪里,我一直遵循 Microsoft 在其分步指南中建议的步骤,即“使用 OAuth 验证 IMAP、POP 或 SMTP 连接”
我一直在使用此 github 项目来使用客户端凭据授予流程获取访问令牌: 使用 Java 的 MSAL 客户端凭据授予
IMAP的 Java 代码
public static void connectIMAP(String userEmail, String accessToken){
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties props= new Properties();
props.put("mail.imap.ssl.enable", "true");
props.put("mail.imap.sasl.enable", "true");
props.put("mail.imap.port", "993");
props.put("mail.imap.auth.mechanisms", "XOAUTH2");
props.put("mail.imap.sasl.mechanisms", "XOAUTH2");
props.put("mail.imap.auth.login.disable", "true");
props.put("mail.imap.auth.plain.disable", "true");
props.setProperty("mail.imap.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.imap.socketFactory.fallback", "false");
props.setProperty("mail.imap.socketFactory.port", "993");
props.setProperty("mail.imap.starttls.enable", "true");
props.put("mail.debug", "true");
props.put("mail.debug.auth", "true");
Session session = Session.getInstance(props);
session.setDebug(true);
try {
final …Run Code Online (Sandbox Code Playgroud)