email.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. var arr []string
  11. sub := strings.Index(touser, ";")
  12. if sub >= 0 {
  13. spArr := strings.Split(touser, ";")
  14. for _, v := range spArr {
  15. arr = append(arr, v)
  16. }
  17. }else{
  18. arr = append(arr, touser)
  19. }
  20. m := gomail.NewMessage()
  21. m.SetHeader("From", "local.circle@qq.com")
  22. m.SetHeader("To", arr...)
  23. m.SetHeader("Subject", title+" "+GetRandString(16))
  24. m.SetBody("text/html", content)
  25. d := gomail.NewDialer("smtp.qq.com", 587, "local.circle@qq.com", "iyrzdcsrmmbabbge")
  26. if err := d.DialAndSend(m); err != nil {
  27. fmt.Println("err:",err.Error())
  28. return false
  29. }
  30. return true
  31. }
  32. //发送邮件
  33. func SendEmailByHongze(title, content string, touser,attachPath,attachName string)bool {
  34. var arr []string
  35. sub := strings.Index(touser, ";")
  36. if sub >= 0 {
  37. spArr := strings.Split(touser, ";")
  38. for _, v := range spArr {
  39. arr = append(arr, v)
  40. }
  41. }else{
  42. arr = append(arr, touser)
  43. }
  44. m := gomail.NewMessage()
  45. m.SetHeader("From", "public@hzinsights.com")
  46. m.SetHeader("To", arr...)
  47. m.SetHeader("Subject", title+" "+GetRandStringNoSpecialChar(8))
  48. m.SetBody("text/html", content)
  49. //body := new(bytes.Buffer)
  50. m.Attach(attachPath,
  51. gomail.Rename(attachName),
  52. gomail.SetHeader(map[string][]string{
  53. "Content-Disposition": []string{
  54. fmt.Sprintf(`attachment; filename="%s"`, mime.QEncoding.Encode("UTF-8", attachName)),
  55. },
  56. }),)
  57. d := gomail.NewDialer("smtp.mxhichina.com", 465, "public@hzinsights.com", "Hzinsights2018")
  58. if err := d.DialAndSend(m); err != nil {
  59. fmt.Println("send err:",err.Error())
  60. return false
  61. }
  62. return true
  63. }