email.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package utils
  2. import (
  3. "fmt"
  4. "gopkg.in/gomail.v2"
  5. "mime"
  6. "strings"
  7. )
  8. //发送邮件
  9. func SendEmail(title, content string, touser string) bool {
  10. if RunMode == "debug" {
  11. return false
  12. }
  13. var arr []string
  14. sub := strings.Index(touser, ";")
  15. if sub >= 0 {
  16. spArr := strings.Split(touser, ";")
  17. for _, v := range spArr {
  18. arr = append(arr, v)
  19. }
  20. } else {
  21. arr = append(arr, touser)
  22. }
  23. m := gomail.NewMessage()
  24. m.SetHeader("From", "317699326@qq.com ")
  25. m.SetHeader("To", arr...)
  26. m.SetHeader("Subject", title+" "+GetRandString(16))
  27. m.SetBody("text/html", content)
  28. d := gomail.NewDialer("smtp.qq.com", 587, "317699326@qq.com", "oqdypwfcvruwcbea")
  29. if err := d.DialAndSend(m); err != nil {
  30. return false
  31. }
  32. return true
  33. }
  34. //发送邮件
  35. func SendEmailByHz(title, content string, touser string) (result bool, err error) {
  36. //if RunMode == "debug" {
  37. // result = false
  38. // return result, err
  39. //}
  40. var arr []string
  41. sub := strings.Index(touser, ";")
  42. if sub >= 0 {
  43. spArr := strings.Split(touser, ";")
  44. for _, v := range spArr {
  45. arr = append(arr, v)
  46. }
  47. } else {
  48. arr = append(arr, touser)
  49. }
  50. m := gomail.NewMessage()
  51. m.SetHeader("From", "public@hzinsights.com")
  52. m.SetHeader("To", arr...)
  53. m.SetHeader("Subject", title)
  54. m.SetBody("text/html", content)
  55. d := gomail.NewDialer("smtp.mxhichina.com", 465, "public@hzinsights.com", "Hzinsights2018")
  56. if err := d.DialAndSend(m); err != nil {
  57. result = false
  58. return result, err
  59. }
  60. result = true
  61. return
  62. }
  63. //发送带有文件的邮件
  64. func SendEmailHaveFile(title, content string, fileName, touser string) bool {
  65. var arr []string
  66. sub := strings.Index(touser, ";")
  67. if sub >= 0 {
  68. spArr := strings.Split(touser, ";")
  69. for _, v := range spArr {
  70. arr = append(arr, v)
  71. }
  72. } else {
  73. arr = append(arr, touser)
  74. }
  75. m := gomail.NewMessage()
  76. m.SetHeader("From", "317699326@qq.com ")
  77. m.SetHeader("To", arr...)
  78. m.SetHeader("Subject", title)
  79. m.Attach(fileName)
  80. m.SetBody("text/html", content)
  81. d := gomail.NewDialer("smtp.qq.com", 587, "317699326@qq.com", "oqdypwfcvruwcbea")
  82. if err := d.DialAndSend(m); err != nil {
  83. return false
  84. }
  85. return true
  86. }
  87. //发送邮件
  88. func SendEmailByHongze(title, content string, touser, attachPath, attachName string) bool {
  89. var arr []string
  90. sub := strings.Index(touser, ";")
  91. if sub >= 0 {
  92. spArr := strings.Split(touser, ";")
  93. for _, v := range spArr {
  94. arr = append(arr, v)
  95. }
  96. } else {
  97. arr = append(arr, touser)
  98. }
  99. m := gomail.NewMessage()
  100. m.SetHeader("From", "public@hzinsights.com")
  101. m.SetHeader("To", arr...)
  102. m.SetHeader("Subject", title)
  103. m.SetBody("text/html", content)
  104. //body := new(bytes.Buffer)
  105. if attachPath != "" {
  106. m.Attach(attachPath,
  107. gomail.Rename(attachName),
  108. gomail.SetHeader(map[string][]string{
  109. "Content-Disposition": []string{
  110. fmt.Sprintf(`attachment; filename="%s"`, mime.QEncoding.Encode("UTF-8", attachName)),
  111. },
  112. }))
  113. }
  114. d := gomail.NewDialer("smtp.mxhichina.com", 465, "public@hzinsights.com", "Hzinsights2018")
  115. if err := d.DialAndSend(m); err != nil {
  116. fmt.Println("send err:", err.Error())
  117. return false
  118. }
  119. return true
  120. }