diff --git a/app/src/main/java/com/sun/mail/imap/IMAPStore.java b/app/src/main/java/com/sun/mail/imap/IMAPStore.java index 3527ce1598..9b4f5d4d86 100644 --- a/app/src/main/java/com/sun/mail/imap/IMAPStore.java +++ b/app/src/main/java/com/sun/mail/imap/IMAPStore.java @@ -750,7 +750,12 @@ public class IMAPStore extends Store if (p.hasCapability("STARTTLS")) { p.startTLS(); // if startTLS succeeds, refresh capabilities + boolean logindisabled = p.hasCapability("LOGINDISABLED"); p.capability(); + if (logindisabled && !p.hasCapability("LOGINDISABLED")) { + eu.faircode.email.Log.e("Preserving LOGINDISABLED"); + p.setCapability("LOGINDISABLED"); + } } else if (requireStartTLS) { logger.fine("STARTTLS required but not supported by server"); throw new ProtocolException( diff --git a/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java b/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java index 85727902ad..a32101d0f0 100644 --- a/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java +++ b/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java @@ -412,6 +412,10 @@ public class IMAPProtocol extends Protocol { return capabilities.containsKey(c.toUpperCase(Locale.ENGLISH)); } + public void setCapability(String c) { + capabilities.put(c.toUpperCase(Locale.ENGLISH), c); + } + /** * Return the map of capabilities returned by the server. *