From deff81d2ff900256f01902ad450e633bb12226be Mon Sep 17 00:00:00 2001 From: 409 <409dev@protonmail.com> Date: Sat, 19 Jul 2025 22:09:07 +0200 Subject: [PATCH] use rfc 5322 email regex --- backend/src/lib/domain/warren/models/user/mod.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 {