fix parsing message headers with addresses that need double quotes

we are using Go's net/mail to parse message headers. it can parse addresses,
and properly decodes email addresses with double quotes (e.g. " "@example.com).
however, it gives us an address without the double quotes in the localpart,
effectively an invalid address. we now have a workaround to parse such
not-quite-addresses.

for issue #199 reported by gene-hightower, thanks for reporting!
This commit is contained in:
Mechiel Lukkien
2024-08-22 16:03:52 +02:00
parent 79b641cdc6
commit 016fde8d78
4 changed files with 29 additions and 3 deletions

View File

@ -201,7 +201,11 @@ binary should be setgid that group:
if len(addrs) != 1 {
log.Fatalf("only single address allowed in To header")
}
recipient = addrs[0].Address
addr, err := smtp.ParseNetMailAddress(addrs[0].Address)
if err != nil {
log.Fatalf("parsing address: %v", err)
}
recipient = addr.Pack(false)
}
}
if k == "to" {