31 lines
519 B
Go
31 lines
519 B
Go
package mailparser
|
|
|
|
import (
|
|
"net/mail"
|
|
"strings"
|
|
)
|
|
|
|
func bccAddresses(header string) []string {
|
|
if strings.TrimSpace(header) == "" {
|
|
return nil
|
|
}
|
|
addrs, err := mail.ParseAddressList(header)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
var out []string
|
|
seen := make(map[string]struct{})
|
|
for _, a := range addrs {
|
|
addr := strings.ToLower(strings.TrimSpace(a.Address))
|
|
if addr == "" {
|
|
continue
|
|
}
|
|
if _, dup := seen[addr]; dup {
|
|
continue
|
|
}
|
|
seen[addr] = struct{}{}
|
|
out = append(out, addr)
|
|
}
|
|
return out
|
|
}
|