1 // Copyright 2013 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 smtp_test 6 7 import ( 8 "fmt" 9 "log" 10 "net/smtp" 11 ) 12 13 func Example() { 14 // Connect to the remote SMTP server. 15 c, err := smtp.Dial("mail.example.com:25") 16 if err != nil { 17 log.Fatal(err) 18 } 19 20 // Set the sender and recipient first 21 if err := c.Mail("sender (a] example.org"); err != nil { 22 log.Fatal(err) 23 } 24 if err := c.Rcpt("recipient (a] example.net"); err != nil { 25 log.Fatal(err) 26 } 27 28 // Send the email body. 29 wc, err := c.Data() 30 if err != nil { 31 log.Fatal(err) 32 } 33 _, err = fmt.Fprintf(wc, "This is the email body") 34 if err != nil { 35 log.Fatal(err) 36 } 37 err = wc.Close() 38 if err != nil { 39 log.Fatal(err) 40 } 41 42 // Send the QUIT command and close the connection. 43 err = c.Quit() 44 if err != nil { 45 log.Fatal(err) 46 } 47 } 48 49 // variables to make ExamplePlainAuth compile, without adding 50 // unnecessary noise there. 51 var ( 52 from = "gopher (a] example.net" 53 msg = []byte("dummy message") 54 recipients = []string{"foo (a] example.com"} 55 ) 56 57 func ExamplePlainAuth() { 58 // hostname is used by PlainAuth to validate the TLS certificate. 59 hostname := "mail.example.com" 60 auth := smtp.PlainAuth("", "user (a] example.com", "password", hostname) 61 62 err := smtp.SendMail(hostname+":25", auth, from, recipients, msg) 63 if err != nil { 64 log.Fatal(err) 65 } 66 } 67 68 func ExampleSendMail() { 69 // Set up authentication information. 70 auth := smtp.PlainAuth("", "user (a] example.com", "password", "mail.example.com") 71 72 // Connect to the server, authenticate, set the sender and recipient, 73 // and send the email all in one step. 74 to := []string{"recipient (a] example.net"} 75 msg := []byte("To: recipient (a] example.net\r\n" + 76 "Subject: discount Gophers!\r\n" + 77 "\r\n" + 78 "This is the email body.\r\n") 79 err := smtp.SendMail("mail.example.com:25", auth, "sender (a] example.org", to, msg) 80 if err != nil { 81 log.Fatal(err) 82 } 83 } 84