29 lines
447 B
Go
29 lines
447 B
Go
package utils
|
|
|
|
import (
|
|
"errors"
|
|
"net/mail"
|
|
"strings"
|
|
)
|
|
|
|
func NormalizeEmail(email string) (string, error) {
|
|
if email == "" {
|
|
return "", errors.New("email empty")
|
|
}
|
|
|
|
lower := strings.ToLower(email)
|
|
lower = strings.TrimSpace(lower)
|
|
|
|
parsed, err := mail.ParseAddress(lower)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return parsed.Address, nil
|
|
}
|
|
|
|
func IsValidEmail(email string) bool {
|
|
_, err := mail.ParseAddress(email)
|
|
return err == nil
|
|
}
|