Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "crypto/tls"
  5. "fmt"
  6. "net/mail"
  7. "net/smtp"
  8.  
  9. "github.com/scorredoira/email"
  10. )
  11.  
  12. const (
  13. MAIL_SUBJECT = "mail subject"
  14. MAIL_BODY = "body"
  15. FROM_NAME = "from_name"
  16. FROM_ADDRESS = "from@example.com"
  17. TO_ADDRESS = "to@example.com"
  18. CSV_FILENAME = "test.csv"
  19. )
  20.  
  21. func buildCSV() string {
  22. return "asdf,fuga,piyo"
  23. }
  24.  
  25. func sendMail() error {
  26. m := email.NewMessage(MAIL_SUBJECT, MAIL_BODY)
  27. m.From = mail.Address{Name: FROM_NAME, Address: FROM_ADDRESS}
  28. m.To = []string{TO_ADDRESS}
  29.  
  30. if err := m.AttachBuffer(CSV_FILENAME, []byte(buildCSV()), false); err != nil {
  31. return err
  32. }
  33.  
  34. auth := smtp.PlainAuth("", "example@gmail.com", "password", "smtp.gmail.com")
  35. tlsconfig := &tls.Config{
  36. InsecureSkipVerify: true,
  37. ServerName: "smtp.gmail.com",
  38. }
  39. conn, err := tls.Dial("tcp", "smtp.gmail.com:465", tlsconfig)
  40. if err != nil {
  41. fmt.Println("tls dial error")
  42. return err
  43. }
  44. c, err := smtp.NewClient(conn, "smtp.gmail.com")
  45. if err != nil {
  46. fmt.Println("smtp client error")
  47. return err
  48. }
  49. if err := c.Auth(auth); err != nil {
  50. fmt.Println("smtp auth error")
  51. return err
  52. }
  53.  
  54. // To && From
  55. if err = c.Mail("from@example.com"); err != nil {
  56. fmt.Println("smtp from error")
  57. return err
  58. }
  59.  
  60. if err = c.Rcpt("to@example.com"); err != nil {
  61. fmt.Println("smtp rcpt error")
  62. return err
  63. }
  64.  
  65. // Data
  66. wd, err := c.Data()
  67. if err != nil {
  68. fmt.Println("smtp data error")
  69. return err
  70. }
  71.  
  72. _, err = wd.Write(m.Bytes())
  73. if err != nil {
  74. fmt.Println("smtp write error")
  75. return err
  76. }
  77.  
  78. err = wd.Close()
  79. if err != nil {
  80. fmt.Println("smtp close error")
  81. return err
  82. }
  83. c.Quit()
  84.  
  85. return nil
  86. }
  87.  
  88. func main() {
  89. err := sendMail()
  90. if err != nil {
  91. panic(err)
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement