From 46cf2ed498215caf739a117caca7d688063c81b7 Mon Sep 17 00:00:00 2001 From: theexiile1305 Date: Sun, 29 Sep 2024 16:46:30 +0200 Subject: [PATCH] fix: part boundray and message encoding --- msgwriter.go | 6 +++++- sime.go | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/msgwriter.go b/msgwriter.go index 7c1e88e..41b3490 100644 --- a/msgwriter.go +++ b/msgwriter.go @@ -138,6 +138,10 @@ func (mw *msgWriter) writeMsg(msg *Msg) { if msg.hasMixed() { mw.stopMP() } + + if msg.hasSMime() { + mw.stopMP() + } } // writeGenHeader writes out all generic headers to the msgWriter @@ -341,7 +345,7 @@ func (mw *msgWriter) writeBody(writeFunc func(io.Writer) (int64, error), encodin encodedWriter = quotedprintable.NewWriter(&writeBuffer) } else if encoding == EncodingB64 && !singingWithSMime { encodedWriter = base64.NewEncoder(base64.StdEncoding, &lineBreaker) - } else if encoding == NoEncoding { + } else if encoding == NoEncoding || singingWithSMime { _, err = writeFunc(&writeBuffer) if err != nil { mw.err = fmt.Errorf("bodyWriter function: %w", err) diff --git a/sime.go b/sime.go index f0f8c1e..35dabfb 100644 --- a/sime.go +++ b/sime.go @@ -105,8 +105,10 @@ func encodeToPEM(msg []byte) (*string, error) { } r := arrayBuffer.String() - r = strings.ReplaceAll(r, "-----BEGIN -----\n", "") - r = strings.ReplaceAll(r, "-----END -----\n", "") + r = strings.TrimPrefix(r, "-----BEGIN -----") + r = strings.Trim(r, "\n") + r = strings.TrimSuffix(r, "-----END -----") + r = strings.Trim(r, "\n") return &r, nil }