Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.38 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "crypto/tls"
  5.     "fmt"
  6.     "log"
  7.     "net"
  8.     "net/mail"
  9.     "net/smtp"
  10.     "setiLabs/config"
  11. )
  12.  
  13. func main() {
  14.     //var ml config.Mail
  15.     ml := config.GetMail("")
  16.     from := mail.Address{Name: "Andrey", Address: "and.vladislavov@mail.ru"}
  17.     to := mail.Address{Name: "", Address: ""}
  18.     subj := "Test SMTP msg"
  19.     body := "Test SMTP msg"
  20.  
  21.     headers := make(map[string]string)
  22.     headers["From"] = from.String()
  23.     headers["To"] = to.String()
  24.     headers["Subject"] = subj
  25.  
  26.     // Setup message
  27.     message := ""
  28.     for k, v := range headers {
  29.         message += fmt.Sprintf("%s: %s\r\n", k, v)
  30.     }
  31.     message += "\r\n" + body
  32.  
  33.     serverName := ml.Addr
  34.     host, port, _ := net.SplitHostPort(serverName)
  35.     fmt.Println(fmt.Sprintf("%s:%s", host, port))
  36.  
  37.     auth := smtp.PlainAuth("", ml.Mail, ml.Pwd, host)
  38.  
  39.     tlsconfig := &tls.Config{
  40.         InsecureSkipVerify: true,
  41.         ServerName:         host,
  42.     }
  43.     conn, err := tls.Dial("tcp", serverName, tlsconfig)
  44.     if err != nil {
  45.         log.Panic(err)
  46.     }
  47.  
  48.     c, err := smtp.NewClient(conn, host)
  49.     if err != nil {
  50.         log.Panic(err)
  51.     }
  52.     defer c.Quit()
  53.  
  54.     if err = c.Auth(auth); err != nil {
  55.         log.Panic(err)
  56.     }
  57.  
  58.     if err = c.Mail(from.Address); err != nil {
  59.         log.Panic(err)
  60.     }
  61.     if err = c.Rcpt(to.Address); err != nil {
  62.         log.Panic(err)
  63.     }
  64.     w, err := c.Data()
  65.     if err != nil {
  66.         log.Panic(err)
  67.     }
  68.  
  69.     _, err = w.Write([]byte(message))
  70.     if err != nil {
  71.         log.Panic(err)
  72.     }
  73.  
  74.     err = w.Close()
  75.     if err != nil {
  76.         log.Panic(err)
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement