From b241c49512e372fdd0c32bd8a323fa274cb5996f Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 23 May 2024 19:34:22 +0200 Subject: [PATCH] Partially override server DMARC indication --- app/src/main/java/eu/faircode/email/Core.java | 18 ++++++++++++++---- 1 file changed, 14 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 298cbc4427..f4b5ea1bc4 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -3512,8 +3512,13 @@ class Core { List signers = helper.verifyDKIM(context); message.signedby = (signers.isEmpty() ? null : TextUtils.join(",", signers)); message.dkim = !signers.isEmpty(); - message.dmarc = Boolean.TRUE.equals(message.dmarc) || - helper.isAligned(context, signers, message.return_path, message.smtp_from, message.from); + if (message.dkim) { + 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; + } } if (message.size == null && message.total != null) @@ -4668,8 +4673,13 @@ class Core { List signers = helper.verifyDKIM(context); message.signedby = (signers.isEmpty() ? null : TextUtils.join(",", signers)); message.dkim = !signers.isEmpty(); - message.dmarc = Boolean.TRUE.equals(message.dmarc) || - helper.isAligned(context, signers, message.return_path, message.smtp_from, message.from); + if (message.dkim) { + 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; + } } // Borrow reply name from sender name