aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rfc822/message.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rfc822/message.go')
-rw-r--r--lib/rfc822/message.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/rfc822/message.go b/lib/rfc822/message.go
index 391ab3e5..26d790ff 100644
--- a/lib/rfc822/message.go
+++ b/lib/rfc822/message.go
@@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"io"
+ "mime"
"regexp"
"strings"
"time"
@@ -284,6 +285,13 @@ func parseAddressList(h *mail.Header, key string) ([]*mail.Address, error) {
// errors which are not fatal.
return nil, err
}
+ for _, addr := range addrs {
+ // Handle invalid headers with quoted *AND* encoded names
+ if strings.HasPrefix(addr.Name, "=?") && strings.HasSuffix(addr.Name, "?=") {
+ d := mime.WordDecoder{CharsetReader: message.CharsetReader}
+ addr.Name, _ = d.DecodeHeader(addr.Name)
+ }
+ }
// If we got at least one address, ignore any returned error.
return addrs, nil
}