Golang net/smtp.Client.Auth(), Extension(), Mail(), Rcpt() and Data() functions example

package net/smtp

Golang net/smtp.Client.Auth(), Extension(), Mail(), Rcpt() and Data() functions usage example

 auth := smtp.PlainAuth("","username@example.com", "password", host)
 ...
 client, err := smtp.NewClient(conn, host)
 if err != nil {
 panic(err)
 }

 // Auth
 if err = client.Auth(auth); err != nil {
 panic(err)
 }

 // Extension
 if ok, args := client.Extension("aUtH"); !ok || args != "LOGIN PLAIN" {
 fmt.Println("Expected AUTH supported")
 }

 // Mail To
 if err = client.Mail("from address"); err != nil {
 panic(err)
 }

 // Mail From / Rcpt
 if err = client.Rcpt("to address"); err != nil {
 panic(err)
 }

 // Data
 writer, err := client.Data()
 if err != nil {
 panic(err)
 }

 _, err = writer.Write([]byte("hello world!"))
 if err != nil {
 panic(err)
 }

 err = writer.Close()
 if err != nil {
 panic(err)
 }

 client.Quit()

References :

http://golang.org/pkg/net/smtp/#Client.Auth

http://golang.org/pkg/net/smtp/#Client.Data

http://golang.org/pkg/net/smtp/#Client.Extension

Advertisement