email.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package utils
  2. import (
  3. "fmt"
  4. "gopkg.in/gomail.v2"
  5. "mime"
  6. "strings"
  7. )
  8. func SendEmail(title, content string, touser string) bool {
  9. var arr []string
  10. sub := strings.Index(touser, ";")
  11. if sub >= 0 {
  12. spArr := strings.Split(touser, ";")
  13. for _, v := range spArr {
  14. arr = append(arr, v)
  15. }
  16. } else {
  17. arr = append(arr, touser)
  18. }
  19. m := gomail.NewMessage()
  20. m.SetHeader("From", m.FormatAddress("qunao007@qq.com", APPNAME)) //这种方式可以添加别名,即“XX官方”
  21. m.SetHeader("To", arr...)
  22. m.SetHeader("Subject", title+" "+GetRandString(16))
  23. m.SetBody("text/html", content)
  24. d := gomail.NewDialer("smtp.qq.com", 587, "qunao007@qq.com", "cyhjgffhaobteihd")
  25. if err := d.DialAndSend(m); err != nil {
  26. fmt.Println("err:", err)
  27. return false
  28. }
  29. return true
  30. }
  31. func SendEmailByHongze(title, content string, touser, attachPath, attachName string) bool {
  32. var arr []string
  33. sub := strings.Index(touser, ";")
  34. if sub >= 0 {
  35. spArr := strings.Split(touser, ";")
  36. for _, v := range spArr {
  37. arr = append(arr, v)
  38. }
  39. } else {
  40. arr = append(arr, touser)
  41. }
  42. m := gomail.NewMessage()
  43. m.SetHeader("From", "public@hzinsights.com")
  44. m.SetHeader("To", arr...)
  45. m.SetHeader("Subject", title+" "+GetRandStringNoSpecialChar(8))
  46. m.SetBody("text/html", content)
  47. if attachPath != "" {
  48. m.Attach(attachPath,
  49. gomail.Rename(attachName),
  50. gomail.SetHeader(map[string][]string{
  51. "Content-Disposition": {
  52. fmt.Sprintf(`attachment; filename="%s"`, mime.QEncoding.Encode("UTF-8", attachName)),
  53. },
  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. }