From 14087eb7448372c83c206a27a5a44e42fec470b8 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 15 Nov 2022 21:26:55 +0100 Subject: [PATCH] Find provider by host --- .../main/java/eu/faircode/email/EmailProvider.java | 11 +++++++++++ app/src/main/java/eu/faircode/email/EmailService.java | 11 ++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EmailProvider.java b/app/src/main/java/eu/faircode/email/EmailProvider.java index 00f5cc0fb8..4ce774119d 100644 --- a/app/src/main/java/eu/faircode/email/EmailProvider.java +++ b/app/src/main/java/eu/faircode/email/EmailProvider.java @@ -333,6 +333,17 @@ public class EmailProvider implements Parcelable { throw new FileNotFoundException("provider id=" + id); } + static EmailProvider getProviderByHost(Context context, @NonNull String host) { + for (EmailProvider provider : loadProfiles(context)) { + if (provider.imap != null && host.equals(provider.imap.host)) + return provider; + if (provider.smtp != null && host.equals(provider.smtp.host)) + return provider; + } + + return null; + } + static List getProviders(Context context) { List result = new ArrayList<>(); for (EmailProvider provider : loadProfiles(context)) diff --git a/app/src/main/java/eu/faircode/email/EmailService.java b/app/src/main/java/eu/faircode/email/EmailService.java index 9a44faf2be..ca19c4296c 100644 --- a/app/src/main/java/eu/faircode/email/EmailService.java +++ b/app/src/main/java/eu/faircode/email/EmailService.java @@ -432,14 +432,15 @@ public class EmailService implements AutoCloseable { } boolean strict = ssl_harden_strict; - if (strict && provider != null) - try { - EmailProvider p = EmailProvider.getProvider(context, provider); - if ("1.2".equals(p.maxtls)) { + if (strict) + if ("pop3".equals(protocol) || "pop3s".equals(protocol)) + strict = false; + else { + EmailProvider p = EmailProvider.getProviderByHost(context, host); + if (p != null && "1.2".equals(p.maxtls)) { strict = false; Log.i(p.name + " maxtls=" + p.maxtls); } - } catch (FileNotFoundException ignored) { } factory = new SSLSocketFactoryService(host, insecure, ssl_harden, strict, cert_strict, key, chain, fingerprint);