diff --git a/controller/misc.go b/controller/misc.go index 2928b8fb..42ca748d 100644 --- a/controller/misc.go +++ b/controller/misc.go @@ -84,17 +84,27 @@ func SendEmailVerification(c *gin.Context) { return } if config.EmailDomainRestrictionEnabled { + parts := strings.Split(email, "@") + localPart := parts[0] + domainPart := parts[1] + + containsSpecialSymbols := strings.Contains(localPart, "+") || strings.Count(localPart, ".") > 1 allowed := false for _, domain := range config.EmailDomainWhitelist { - if strings.HasSuffix(email, "@"+domain) { + if domainPart == domain { allowed = true break } } - if !allowed { + if allowed && !containsSpecialSymbols { + c.JSON(http.StatusOK, gin.H{ + "success": true, + "message": "Your email address is allowed.", + }) + } else { c.JSON(http.StatusOK, gin.H{ "success": false, - "message": "管理员启用了邮箱域名白名单,您的邮箱地址的域名不在白名单中", + "message": "The administrator has enabled the email domain name whitelist, and your email address is not allowed due to special symbols or it's not in the whitelist.", }) return }