diff --git a/pom.xml b/pom.xml index 78278a19baf22aafc5e3622f40a6eba065a8e209..ad665e6ff21fe253fac125dbf21dce25e09a13cc 100644 --- a/pom.xml +++ b/pom.xml @@ -149,6 +149,12 @@ commons-lang3 3.8.1 + + + com.sun.mail + javax.mail + 1.6.2 + diff --git a/src/main/java/biz/nynja/account/components/Validator.java b/src/main/java/biz/nynja/account/components/Validator.java index 2d66430032afa8dc2f816c8f3ca8b59f6c87f38c..d35f8195b985f810350f640dae3bb1c359b671df 100644 --- a/src/main/java/biz/nynja/account/components/Validator.java +++ b/src/main/java/biz/nynja/account/components/Validator.java @@ -37,6 +37,8 @@ import biz.nynja.account.grpc.ErrorResponse.Cause; import biz.nynja.account.grpc.UpdateAccountRequest; import biz.nynja.account.grpc.UpdateProfileRequest; import biz.nynja.account.models.CountryInfo; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; /** * Component which contains all validation methods. @@ -166,18 +168,17 @@ public class Validator { } public boolean isEmailValid(String email) { - + boolean result = true; logger.debug("Checking email: {}", email); - final String EMAIL_PATTERN = "^(?!\\.)[\\w!#$%&’*+/=?`{|}~^.-]{0,63}[\\w!#$%&’*+/=?`{|}~^-]{1}@(?!\\.)[a-zA-Z0-9-.]{0,229}[a-zA-Z0-9]{1}.[a-zA-Z0-9]{2,25}$"; - - Pattern pattern = Pattern.compile(EMAIL_PATTERN); - Matcher matcher = pattern.matcher(email); - - boolean isValid = matcher.matches(); - logger.debug("Email: {} is valid: {}", email, isValid); - - return isValid; + try { + InternetAddress emailAddr = new InternetAddress(email); + emailAddr.validate(); + } catch (AddressException ex) { + result = false; + } + logger.debug("Email: {} is valid: {}", email, result); + return result; } public boolean isFirstNameValid(String firstName) {