From 95cf3e724785cf8d46beec31c4a009b5a4c6af91 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 16 Nov 2017 10:07:24 +0100 Subject: pkg/email: fix base64-encoded body parsing We currently handle base64 only for attachments, but text/plain body can also be base64-encoded. --- pkg/email/parser.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'pkg/email') diff --git a/pkg/email/parser.go b/pkg/email/parser.go index c000625b5..275403960 100644 --- a/pkg/email/parser.go +++ b/pkg/email/parser.go @@ -195,12 +195,12 @@ func parseBody(r io.Reader, headers mail.Header) (body []byte, attachments [][]b 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" { + r = base64.NewDecoder(base64.StdEncoding, r) + } disp, _, _ := mime.ParseMediaType(headers.Get("Content-Disposition")) if disp == "attachment" { - // Note: mime package handles quoted-printable internally. - if strings.ToLower(headers.Get("Content-Transfer-Encoding")) == "base64" { - r = base64.NewDecoder(base64.StdEncoding, r) - } attachment, err := ioutil.ReadAll(r) if err != nil { return nil, nil, fmt.Errorf("failed to read email body: %v", err) -- cgit mrf-deployment