From bb88910d88405d622d75bbca64f6bae6824d818d Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 9 Jan 2022 17:21:05 +0100 Subject: [PATCH] List-Unsubscribe: match links/email addresses --- .../main/java/eu/faircode/email/MessageHelper.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index a3f487f914..742e4bc99e 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -87,6 +87,7 @@ import java.util.Map; import java.util.Objects; import java.util.Properties; import java.util.TimeZone; +import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.activation.DataHandler; @@ -1928,8 +1929,16 @@ public class MessageHelper { String scheme = uri.getScheme(); if ("http".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) link = unsubscribe; - else - Log.w(new Throwable(unsubscribe)); + else { + Pattern p = + Pattern.compile(PatternsCompat.AUTOLINK_WEB_URL.pattern() + "|" + + PatternsCompat.AUTOLINK_EMAIL_ADDRESS.pattern()); + Matcher m = p.matcher(unsubscribe); + if (m.find()) + link = unsubscribe.substring(m.start(), m.end()); + else + Log.w(new Throwable(unsubscribe)); + } } }