diff --git a/utils/utils.go b/utils/utils.go
index 526025d0dc8fb9c99ea18538ed963422039fed04..296f43419957df0635a8cd100216fbf6a8e13bdc 100644
--- a/utils/utils.go
+++ b/utils/utils.go
@@ -59,7 +59,7 @@ func PointerToValue[V any](value *V) V {
 	return *new(V) // zero value of V
 }
 
-func ValidateEmailAddress(email string) (string, error) {
+func ValidateEmailAddress(email string, options ...map[string]string) (string, error) {
 	// To lower
 	cleanedEmail := strings.ToLower(strings.TrimSpace(email))
 
@@ -79,11 +79,26 @@ func ValidateEmailAddress(email string) (string, error) {
 		return "", errors.Error("email address is empty")
 	}
 
+	doOnlyParse := false
+	if options != nil {
+		if value, exists := options[0]["do_only_parse"]; exists && value == "true" {
+			doOnlyParse = true
+		}
+	}
+
 	// Parse and verify the email
 	verifier := emailverifier.NewVerifier()
-	result, err := verifier.Verify(cleanedEmail)
-	if err != nil || !result.Syntax.Valid {
-		return cleanedEmail, errors.Wrap(err, "could not parse email address")
+
+	if doOnlyParse {
+		result := verifier.ParseAddress(cleanedEmail)
+		if !result.Valid {
+			return cleanedEmail, errors.Error("could not parse email address")
+		}
+	} else {
+		result, err := verifier.Verify(cleanedEmail)
+		if err != nil || !result.Syntax.Valid {
+			return cleanedEmail, errors.Wrap(err, "could not parse email address")
+		}
 	}
 
 	return cleanedEmail, nil