From 57efb73f4c4685451582ef1c06e79c6b44c57e68 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 24 Aug 2026 08:26:53 +0200 Subject: [PATCH] Added recognizing Rackspace --- .../java/eu/faircode/email/EmailProvider.java | 28 +++++++++++++++++++ app/src/main/res/xml/providers.xml | 5 ++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EmailProvider.java b/app/src/main/java/eu/faircode/email/EmailProvider.java index b0b5770aab..2b9db3776a 100644 --- a/app/src/main/java/eu/faircode/email/EmailProvider.java +++ b/app/src/main/java/eu/faircode/email/EmailProvider.java @@ -94,6 +94,7 @@ public class EmailProvider implements Parcelable { public boolean alt; public List domain; public List mx; + public List txt; public int order; public String type; public int keepalive; @@ -261,6 +262,10 @@ public class EmailProvider implements Parcelable { if (mx != null) provider.mx = Arrays.asList(mx.split(",")); + String txt = xml.getAttributeValue(null, "txt"); + if (txt != null) + provider.txt = Arrays.asList(txt.split(",")); + provider.order = getAttributeIntValue(xml, "order", Integer.MAX_VALUE); provider.keepalive = getAttributeIntValue(xml, "keepalive", 0); provider.noop = getAttributeBooleanValue(xml, "noop", false); @@ -489,6 +494,29 @@ public class EmailProvider implements Parcelable { Log.w(ex); } + List txt = new ArrayList<>(); + try { + intf.onStatus("TXT " + domain); + txt.addAll(Arrays.asList(DnsHelper.lookup(context, domain, "txt"))); + } catch (Throwable ex) { + Log.w(ex); + } + + for (DnsHelper.DnsRecord record : txt) + if (!TextUtils.isEmpty(record.response)) { + String target = record.response.toLowerCase(Locale.ROOT); + EntityLog.log(context, "TXT target=" + target); + for (EmailProvider provider : providers) { + if (provider.enabled && provider.txt != null) + for (String t : provider.txt) + if (target.matches(t)) { + EntityLog.log(context, "From TXT record=" + domain); + candidates.add(provider); + break; + } + } + } + try { List records = new ArrayList<>(); try { diff --git a/app/src/main/res/xml/providers.xml b/app/src/main/res/xml/providers.xml index 68e770316d..be9a15e086 100644 --- a/app/src/main/res/xml/providers.xml +++ b/app/src/main/res/xml/providers.xml @@ -2410,9 +2410,10 @@ starttls="false" /> + link="https://www.reagan.com/support-outlook-express" + txt=".*include\:emailsrvr\.com.*">