aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/email/parser.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-01-24 19:37:00 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-01-24 19:37:00 +0100
commit866f1102f786c19a67e3857f891eaf5107550663 (patch)
treed524606c39b8ad3955926a7c17a7a9a5221ed2f4 /pkg/email/parser.go
parent9a6ff11ff98e8137871648ee1a35a0a0e0b57adb (diff)
pkg/email: handle emails without Content-Type header
git-send-email sends emails without Content-Type, let's assume it's text.
Diffstat (limited to 'pkg/email/parser.go')
-rw-r--r--pkg/email/parser.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/pkg/email/parser.go b/pkg/email/parser.go
index 37490af1d..702c17a0c 100644
--- a/pkg/email/parser.go
+++ b/pkg/email/parser.go
@@ -246,9 +246,14 @@ func extractArgsLine(body []byte) string {
}
func parseBody(r io.Reader, headers mail.Header) (body []byte, attachments [][]byte, err error) {
- mediaType, params, err := mime.ParseMediaType(headers.Get("Content-Type"))
- if err != nil {
- return nil, nil, fmt.Errorf("failed to parse email header 'Content-Type': %v", err)
+ // git-send-email sends emails without Content-Type, let's assume it's text.
+ mediaType := "text/plain"
+ var params map[string]string
+ if contentType := headers.Get("Content-Type"); contentType != "" {
+ mediaType, params, err = mime.ParseMediaType(headers.Get("Content-Type"))
+ if err != nil {
+ return nil, nil, fmt.Errorf("failed to parse email header 'Content-Type': %v", err)
+ }
}
// Note: mime package handles quoted-printable internally.
if strings.ToLower(headers.Get("Content-Transfer-Encoding")) == "base64" {