Skip to content

Commit f7e2be8

Browse files
committed
mail: do not return an error if header field is missing in Header.AddressList
1 parent 7a29d79 commit f7e2be8

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

mail/header.go

+7-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,14 @@ func NewHeader() Header {
2020
return Header{make(message.Header)}
2121
}
2222

23-
// AddressList parses the named header field as a list of addresses.
23+
// AddressList parses the named header field as a list of addresses. If the
24+
// header is missing, it returns nil.
2425
func (h Header) AddressList(key string) ([]*Address, error) {
25-
return parseAddressList(h.Get(key))
26+
v := h.Get(key)
27+
if v == "" {
28+
return nil, nil
29+
}
30+
return parseAddressList(v)
2631
}
2732

2833
// SetAddressList formats the named header to the provided list of addresses.

mail/header_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ func TestHeader(t *testing.T) {
3030
t.Errorf("Expected header address list to be %v, but got %v", from, got)
3131
}
3232

33+
if got, err := h.AddressList("Cc"); err != nil {
34+
t.Error("Expected no error while parsing missing header address list, got:", err)
35+
} else if got != nil {
36+
t.Errorf("Expected missing header address list to be %v, but got %v", nil, got)
37+
}
38+
3339
if got, err := h.Subject(); err != nil {
3440
t.Error("Expected no error while parsing header subject, got:", err)
3541
} else if got != subject {

0 commit comments

Comments
 (0)