|
@@ -296,7 +296,7 @@ func (e *Email) msgHeaders() (textproto.MIMEHeader, error) {
|
|
|
return res, nil
|
|
|
}
|
|
|
|
|
|
-func writeMessage(buff *bytes.Buffer, msg []byte, multipart bool, mediaType string, w *multipart.Writer) error {
|
|
|
+func writeMessage(buff io.Writer, msg []byte, multipart bool, mediaType string, w *multipart.Writer) error {
|
|
|
if multipart {
|
|
|
header := textproto.MIMEHeader{
|
|
|
"Content-Type": {mediaType + "; charset=UTF-8"},
|
|
@@ -347,7 +347,10 @@ func (e *Email) Bytes() ([]byte, error) {
|
|
|
headers.Set("Content-Transfer-Encoding", "quoted-printable")
|
|
|
}
|
|
|
headerToBytes(buff, headers)
|
|
|
- io.WriteString(buff, "\r\n")
|
|
|
+ _, err = io.WriteString(buff, "\r\n")
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
|
|
|
// Check to see if there is a Text or HTML field
|
|
|
if len(e.Text) > 0 || len(e.HTML) > 0 {
|
|
@@ -556,7 +559,7 @@ func base64Wrap(w io.Writer, b []byte) {
|
|
|
|
|
|
// headerToBytes renders "header" to "buff". If there are multiple values for a
|
|
|
// field, multiple "Field: value\r\n" lines will be emitted.
|
|
|
-func headerToBytes(buff *bytes.Buffer, header textproto.MIMEHeader) {
|
|
|
+func headerToBytes(buff io.Writer, header textproto.MIMEHeader) {
|
|
|
for field, vals := range header {
|
|
|
for _, subval := range vals {
|
|
|
// bytes.Buffer.Write() never returns an error.
|