diff --git a/apps/susimail/src/src/i2p/susi/webmail/Mail.java b/apps/susimail/src/src/i2p/susi/webmail/Mail.java index b361dee6a34efc055b0a275f5cd5248e5cc3e089..53c39f2ae9861f4307846ae34d29695736fcdcb0 100644 --- a/apps/susimail/src/src/i2p/susi/webmail/Mail.java +++ b/apps/susimail/src/src/i2p/susi/webmail/Mail.java @@ -40,6 +40,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.Locale; import java.util.TimeZone; +import java.util.regex.Pattern; import net.i2p.data.DataHelper; import net.i2p.util.SystemVersion; @@ -52,8 +53,11 @@ import net.i2p.util.SystemVersion; class Mail { private static final String DATEFORMAT = "date.format"; - private static final String unknown = "unknown"; + private static final String P1 = "^[^@< \t]+@[^> \t]+$"; + private static final String P2 = "^<[^@< \t]+@[^> \t]+>$"; + private static final Pattern PATTERN1 = Pattern.compile(P1); + private static final Pattern PATTERN2 = Pattern.compile(P2); private int size; public String sender, // as received, trimmed only, not HTML escaped @@ -216,9 +220,9 @@ class Mail { String[] tokens = DataHelper.split(address, "[ \t]+"); for( int i = 0; i < tokens.length; i++ ) { - if( tokens[i].matches( "^[^@< \t]+@[^> \t]+$" ) ) + if (PATTERN1.matcher(tokens[i]).matches()) return "<" + tokens[i] + ">"; - if( tokens[i].matches( "^<[^@< \t]+@[^> \t]+>$" ) ) + if (PATTERN2.matcher(tokens[i]).matches()) return tokens[i]; }