client.go 992 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package mocks
  2. import (
  3. "fmt"
  4. "net/smtp"
  5. )
  6. const (
  7. URL = "127.0.0.1:2500"
  8. )
  9. func lastWords(message string, err error) {
  10. fmt.Println(message, err.Error())
  11. }
  12. func sendMail(i int) {
  13. fmt.Printf("Sending %d mail\n", i)
  14. c, err := smtp.Dial(URL)
  15. if err != nil {
  16. lastWords("Dial ", err)
  17. }
  18. defer func() {
  19. _ = c.Close()
  20. }()
  21. from := "[email protected]"
  22. to := "[email protected]"
  23. if err = c.Mail(from); err != nil {
  24. lastWords("Mail ", err)
  25. }
  26. if err = c.Rcpt(to); err != nil {
  27. lastWords("Rcpt ", err)
  28. }
  29. wr, err := c.Data()
  30. if err != nil {
  31. lastWords("Data ", err)
  32. }
  33. defer func() {
  34. _ = wr.Close()
  35. }()
  36. msg := fmt.Sprint("Subject: something\n")
  37. msg += "From: " + from + "\n"
  38. msg += "To: " + to + "\n"
  39. msg += "\n\n"
  40. msg += "hello\n"
  41. _, err = fmt.Fprint(wr, msg)
  42. if err != nil {
  43. lastWords("Send ", err)
  44. }
  45. fmt.Printf("About to quit %d\n", i)
  46. err = c.Quit()
  47. if err != nil {
  48. lastWords("Quit ", err)
  49. }
  50. fmt.Printf("Finished sending %d mail\n", i)
  51. }