Home | History | Annotate | Download | only in mail
      1 // Copyright 2015 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package mail_test
      6 
      7 import (
      8 	"fmt"
      9 	"io/ioutil"
     10 	"log"
     11 	"net/mail"
     12 	"strings"
     13 )
     14 
     15 func ExampleParseAddressList() {
     16 	const list = "Alice <alice (a] example.com>, Bob <bob (a] example.com>, Eve <eve (a] example.com>"
     17 	emails, err := mail.ParseAddressList(list)
     18 	if err != nil {
     19 		log.Fatal(err)
     20 	}
     21 
     22 	for _, v := range emails {
     23 		fmt.Println(v.Name, v.Address)
     24 	}
     25 
     26 	// Output:
     27 	// Alice alice (a] example.com
     28 	// Bob bob (a] example.com
     29 	// Eve eve (a] example.com
     30 }
     31 
     32 func ExampleParseAddress() {
     33 	e, err := mail.ParseAddress("Alice <alice (a] example.com>")
     34 	if err != nil {
     35 		log.Fatal(err)
     36 	}
     37 
     38 	fmt.Println(e.Name, e.Address)
     39 
     40 	// Output:
     41 	// Alice alice (a] example.com
     42 }
     43 
     44 func ExampleReadMessage() {
     45 	msg := `Date: Mon, 23 Jun 2015 11:40:36 -0400
     46 From: Gopher <from (a] example.com>
     47 To: Another Gopher <to (a] example.com>
     48 Subject: Gophers at Gophercon
     49 
     50 Message body
     51 `
     52 
     53 	r := strings.NewReader(msg)
     54 	m, err := mail.ReadMessage(r)
     55 	if err != nil {
     56 		log.Fatal(err)
     57 	}
     58 
     59 	header := m.Header
     60 	fmt.Println("Date:", header.Get("Date"))
     61 	fmt.Println("From:", header.Get("From"))
     62 	fmt.Println("To:", header.Get("To"))
     63 	fmt.Println("Subject:", header.Get("Subject"))
     64 
     65 	body, err := ioutil.ReadAll(m.Body)
     66 	if err != nil {
     67 		log.Fatal(err)
     68 	}
     69 	fmt.Printf("%s", body)
     70 
     71 	// Output:
     72 	// Date: Mon, 23 Jun 2015 11:40:36 -0400
     73 	// From: Gopher <from (a] example.com>
     74 	// To: Another Gopher <to (a] example.com>
     75 	// Subject: Gophers at Gophercon
     76 	// Message body
     77 }
     78