From 153032208717bc3609af57832dc2789d2c406b89 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 3 Feb 2021 22:02:25 +0100 Subject: [PATCH] Improved DSN decoding --- .../java/eu/faircode/email/MessageHelper.java | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 88f773a47c..dc2adddaf8 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1920,23 +1920,28 @@ public class MessageHelper { } else if (h.isDSN()) { StringBuilder report = new StringBuilder(); report.append("
"); - for (String line : result.split("\\r?\\n")) { - if (line.length() > 0) - if (Character.isWhitespace(line.charAt(0))) - report.append(line).append("
"); + for (String line : result.split("\\r?\\n")) + if (line.length() == 0) + report.append("
"); + else if (Character.isWhitespace(line.charAt(0))) + report.append(line).append("
"); + else { + int colon = line.indexOf(':'); + if (colon < 0) + report.append(line); else { - int colon = line.indexOf(':'); - if (colon < 0) - report.append(line); - else - report - .append("") - .append(line.substring(0, colon)) - .append("") - .append(line.substring(colon)) - .append("
"); + String name = line.substring(0, colon).trim(); + String value = line.substring(colon + 1).trim(); + value = decodeMime(value); + report + .append("") + .append(TextUtils.htmlEncode(name)) + .append("") + .append(": ") + .append(TextUtils.htmlEncode(value)) + .append("
"); } - } + } report.append("
"); result = report.toString(); } else