mirror of https://github.com/M66B/FairEmail.git
Added Unicode email address validation
This commit is contained in:
parent
4a0fb691ba
commit
41b05032d7
|
@ -70,6 +70,7 @@ 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;
|
||||
|
@ -757,8 +758,11 @@ 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));
|
||||
if (!Helper.EMAIL_ADDRESS.matcher(email).matches() && !should)
|
||||
|
||||
Pattern pattern = (unicode ? Helper.EMAIL_ADDRESS_UNICODE : Helper.EMAIL_ADDRESS);
|
||||
if (!pattern.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))
|
||||
|
|
|
@ -192,8 +192,7 @@ public class Helper {
|
|||
private static final String[] ROMAN_10 = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
|
||||
private static final String[] ROMAN_1 = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
|
||||
|
||||
static final Pattern EMAIL_ADDRESS
|
||||
= Pattern.compile(
|
||||
static final Pattern EMAIL_ADDRESS = Pattern.compile(
|
||||
"[\\S]{1,256}" +
|
||||
"\\@" +
|
||||
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
|
||||
|
@ -203,6 +202,14 @@ public class Helper {
|
|||
")+"
|
||||
);
|
||||
|
||||
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) {
|
||||
|
|
Loading…
Reference in New Issue