package main import ( "bytes" "fmt" "io" "io/ioutil" "mime/multipart" ) func main() { b := bytes.NewBufferString(msg) r := multipart.NewReader(b, "509bd906_275ac794_299") for { p, err := r.NextPart() if err == io.EOF { break } if err != nil { panic(err) } d, _ := ioutil.ReadAll(p) fmt.Println(string(d)) } } var msg = `Date: Thu, 8 Nov 2012 16:18:13 +0100 From: Test Reply-To: noreply@test.com To: Message-ID: <512288.12080.105540834.1352387893.59.0@test.com> Subject: =?iso-8859-1?Q?=A1Hola,_se=F1or!?= MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="509bd906_275ac794_299" --509bd906_275ac794_299 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline This is the text=0A part --509bd906_275ac794_299 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline = =09 =09 =09Your Message Subject or Title HTML BODY --509bd906_275ac794_299-- `