diff --git a/validator.go b/validator.go index e3c0a542..1b049236 100644 --- a/validator.go +++ b/validator.go @@ -53,7 +53,8 @@ func (um *UserMap) LoadAuthenticatedEmailsFile() { } updated := make(map[string]bool) for _, r := range records { - updated[strings.ToLower(r[0])] = true + address := strings.ToLower(strings.TrimSpace(r[0])) + updated[address] = true } atomic.StorePointer(&um.m, unsafe.Pointer(&updated)) } diff --git a/validator_test.go b/validator_test.go index 0bf0a08f..b87d419b 100644 --- a/validator_test.go +++ b/validator_test.go @@ -147,3 +147,16 @@ func TestValidatorComparisonsAreCaseInsensitive(t *testing.T) { t.Error("validated domains are not lower-cased") } } + +func TestValidatorIgnoreSpacesInAuthEmails(t *testing.T) { + vt := NewValidatorTest(t) + defer vt.TearDown() + + vt.WriteEmails(t, []string{" foo.bar@example.com "}) + domains := []string(nil) + validator := vt.NewValidator(domains, nil) + + if !validator("foo.bar@example.com") { + t.Error("email should validate") + } +}