code: func (m *MailYak) writeBody(w io.Writer, boundary string) error {
  	alt := multipart.NewWriter(w)
  	defer alt.Close()
  
  	if err := alt.SetBoundary(boundary); err != nil {
  		return err
  	}
  
  	var err error
  	writePart := func(ctype string, data []byte) {
  		if len(data) == 0 || err != nil {
  			return
  		}
  
  		c := fmt.Sprintf("%s; charset=UTF-8", ctype)
  
  		var part io.Writer
  		part, err = alt.CreatePart(textproto.MIMEHeader{"Content-Type": {c}, "Content-Transfer-Encoding": {"quoted-printable"}})
  		if err != nil {
  			return
  		}
  
  		var buf bytes.Buffer
  		qpw := quotedprintable.NewWriter(&buf)
  		_, err = qpw.Write(data)
  		qpw.Close()
  
  		_, err = part.Write(buf.Bytes())
  	}
  
  	writePart("text/plain", m.plain.Bytes())
  	writePart("text/html", m.html.Bytes())
  
  	return err
  }
docs: // writeBody writes the text/plain and text/html mime parts.