From 8b69c15980c99a8abf56e84c6c30d63dbfe6572d Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 15 Dec 2021 20:10:56 +0100 Subject: [PATCH] Process some non-standard read request headers --- .../java/eu/faircode/email/MessageHelper.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 63f90ea5e9..5954d4f1aa 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1445,15 +1445,19 @@ public class MessageHelper { } boolean getReceiptRequested() throws MessagingException { - ensureHeaders(); - - // Return-Receipt-To = delivery receipt - // Disposition-Notification-To = read receipt - return (imessage.getHeader("Disposition-Notification-To") != null); + Address[] headers = getReceiptTo(); + return (headers != null && headers.length > 0); } Address[] getReceiptTo() throws MessagingException { - return getAddressHeader("Disposition-Notification-To"); + // Return-Receipt-To = delivery receipt + // Disposition-Notification-To = read receipt + Address[] receipt = getAddressHeader("Disposition-Notification-To"); + if (receipt == null || receipt.length == 0) + receipt = getAddressHeader("Read-Receipt-To"); + if (receipt == null || receipt.length == 0) + receipt = getAddressHeader("X-Confirm-reading-to"); + return receipt; } String getBimiSelector() throws MessagingException {