From 5242d7a436444300e89ac7994ffa92ba24bcdcea Mon Sep 17 00:00:00 2001 From: Shulhan Date: Fri, 25 Feb 2022 22:21:36 +0700 Subject: lib/email: store the unpacked content type into MIME This is to allow to inspect the MIME content type without calling to Header. --- lib/email/mime.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/email/mime.go b/lib/email/mime.go index edc62202..12a77ce0 100644 --- a/lib/email/mime.go +++ b/lib/email/mime.go @@ -17,6 +17,8 @@ import ( // MIME represent part of message body with their header and content. // type MIME struct { + contentType *ContentType + Header *Header Content []byte } @@ -30,24 +32,26 @@ func newMIME(contentType, content []byte) (mime *MIME, err error) { mime = &MIME{ Header: &Header{}, } + err = mime.Header.Set(FieldTypeContentType, contentType) if err != nil { return nil, err } + mime.contentType = mime.Header.ContentType() + err = mime.Header.Set(FieldTypeMIMEVersion, []byte(mimeVersion1)) if err != nil { return nil, err } - err = mime.Header.Set(FieldTypeContentTransferEncoding, - []byte(encodingQuotedPrintable)) + err = mime.Header.Set(FieldTypeContentTransferEncoding, []byte(encodingQuotedPrintable)) if err != nil { return nil, err } var buf bytes.Buffer - content = append(content, []byte("\r\n")...) + content = append(content, cr, lf) w := quotedprintable.NewWriter(&buf) _, err = w.Write(content) if err != nil { -- cgit v1.3