From 0b42bc22add0190c21d71e019f3a220472b05037 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 15 Aug 2025 21:56:22 +0200 Subject: [PATCH] Fix spaces in list unsubscribe --- .../java/eu/faircode/email/FragmentDialogUnsubscribe.java | 7 +++++-- app/src/main/java/eu/faircode/email/MessageHelper.java | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogUnsubscribe.java b/app/src/main/java/eu/faircode/email/FragmentDialogUnsubscribe.java index 42b8280a98..1d0f6e6c45 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogUnsubscribe.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogUnsubscribe.java @@ -87,6 +87,7 @@ public class FragmentDialogUnsubscribe extends FragmentDialogBase { protected String onExecute(Context context, Bundle args) throws Throwable { final String uri = args.getString("uri"); final String request = "List-Unsubscribe=One-Click"; + Log.i("Unsubscribe request=" + request + " uri=" + uri); // https://datatracker.ietf.org/doc/html/rfc8058 @@ -108,10 +109,12 @@ public class FragmentDialogUnsubscribe extends FragmentDialogBase { int status = connection.getResponseCode(); if (status < 200 || status > 299) { String error = "Error " + status + ": " + connection.getResponseMessage(); + Log.i("Unsubscribe error=" + error); InputStream stream = connection.getErrorStream(); - String detail = (stream == null ? null : Helper.readStream(stream)); + String detail = (stream == null || status == 404 ? null : Helper.readStream(stream)); throw new IOException(error + " " + detail); - } + } else + Log.i("Unsubscribe status=" + status); return Helper.readStream(connection.getInputStream()); } finally { diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index d065642623..d56a0d621d 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -2975,6 +2975,7 @@ public class MessageHelper { list = MimeUtility.unfold(list); list = decodeMime(list); + list = list.replaceAll("\\s+", ""); if (list == null || list.startsWith("NO")) return null; @@ -2985,6 +2986,7 @@ public class MessageHelper { if (post != null) { post = MimeUtility.unfold(post); post = decodeMime(post); + post = post.replaceAll("\\s+", ""); oneclick = "List-Unsubscribe=One-Click".equalsIgnoreCase(post.trim()); }