From 2c68acc2f453cd9a6935c3f30fee2f9fa4d49b60 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 16 Feb 2022 17:54:18 +0100 Subject: [PATCH] Allow unicode email addresses --- .../java/eu/faircode/email/FragmentIdentity.java | 6 +----- app/src/main/java/eu/faircode/email/Helper.java | 12 ++---------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentity.java b/app/src/main/java/eu/faircode/email/FragmentIdentity.java index 1290407e8b..f68b70ebfc 100644 --- a/app/src/main/java/eu/faircode/email/FragmentIdentity.java +++ b/app/src/main/java/eu/faircode/email/FragmentIdentity.java @@ -70,7 +70,6 @@ import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.regex.Pattern; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; @@ -758,11 +757,8 @@ public class FragmentIdentity extends FragmentBase { // throw new IllegalArgumentException(context.getString(R.string.title_no_name)); if (TextUtils.isEmpty(email) && !should) throw new IllegalArgumentException(context.getString(R.string.title_no_email)); - - Pattern pattern = (unicode ? Helper.EMAIL_ADDRESS_UNICODE : Helper.EMAIL_ADDRESS); - if (!pattern.matcher(email).matches() && !should) + if (!Helper.EMAIL_ADDRESS.matcher(email).matches() && !should) throw new IllegalArgumentException(context.getString(R.string.title_email_invalid, email)); - if (TextUtils.isEmpty(host) && !should) throw new IllegalArgumentException(context.getString(R.string.title_no_host)); if (TextUtils.isEmpty(port)) diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index f2a0613360..a726206bec 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -195,21 +195,13 @@ public class Helper { static final Pattern EMAIL_ADDRESS = Pattern.compile( "[\\S]{1,256}" + "\\@" + - "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + + "[\\p{L}][\\p{L}0-9\\-\\_]{0,64}" + "(" + "\\." + - "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + + "[\\p{L}0-9][\\p{L}0-9\\-\\_]{0,25}" + ")+" ); - static final Pattern EMAIL_ADDRESS_UNICODE = Pattern.compile( - "([\\p{L}\\_\\.\\-\\d]+)" + - "@" + - "([\\p{L}\\-\\.\\d]+)" + - "((\\.(\\p{L}){2,63})+)" - // ^([\p{L}\_\.\-\d]+)@([\p{L}\-\.\d]+)((\.(\p{L}){2,63})+)$ - ); - private static final ExecutorService executor = getBackgroundExecutor(1, "helper"); static ExecutorService getBackgroundExecutor(int threads, final String name) {