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) {