From 9be5d1b385f72eae1dbee65bfca19aa8fee051c9 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 28 May 2024 07:59:20 +0200 Subject: [PATCH] Native DKIM: align with auth results header --- app/src/main/java/eu/faircode/email/Core.java | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index bfc8a32978..de036a42ae 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -3516,8 +3516,21 @@ class Core { boolean aligned = helper.isAligned(context, signers, message.return_path, message.smtp_from, message.from); if (aligned) message.dmarc = true; - else if (message.dmarc != null) - message.dmarc = false; + else if (message.dmarc != null) { + boolean found = false; + String asigner = helper.getSigner(authentication); + String adomain = UriHelper.getRootDomain(context, asigner); + if (adomain != null) + for (String signer : signers) { + String sdomain = UriHelper.getRootDomain(context, signer); + if (adomain.equalsIgnoreCase(sdomain)) { + found = true; + break; + } + } + if (!found) + message.dmarc = false; + } } } @@ -4690,8 +4703,21 @@ class Core { boolean aligned = helper.isAligned(context, signers, message.return_path, message.smtp_from, message.from); if (aligned) message.dmarc = true; - else if (message.dmarc != null) - message.dmarc = false; + else if (message.dmarc != null) { + boolean found = false; + String asigner = helper.getSigner(authentication); + String adomain = UriHelper.getRootDomain(context, asigner); + if (adomain != null) + for (String signer : signers) { + String sdomain = UriHelper.getRootDomain(context, signer); + if (adomain.equalsIgnoreCase(sdomain)) { + found = true; + break; + } + } + if (!found) + message.dmarc = false; + } } }