diff --git a/backend/src/lib/domain/warren/models/user/mod.rs b/backend/src/lib/domain/warren/models/user/mod.rs index 7b2a6c5..33d8258 100644 --- a/backend/src/lib/domain/warren/models/user/mod.rs +++ b/backend/src/lib/domain/warren/models/user/mod.rs @@ -86,8 +86,9 @@ pub enum UserEmailError { Empty, } -static USER_EMAIL_REGEX: LazyLock = - LazyLock::new(|| Regex::new(r"^[^@]+@[^@]+\.[^@]+$").expect("Email regex")); +static USER_EMAIL_REGEX: LazyLock = LazyLock::new(|| { + Regex::new(r#"^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$"#).expect("Email regex") +}); impl UserEmail { pub fn new(raw: &str) -> Result {