email.go 1.6 KB

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