1
0

util.go 961 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package mail
  2. import (
  3. "net/mail"
  4. )
  5. func MailAddr(name string, address string) *mail.Address {
  6. return &mail.Address{
  7. Name: name,
  8. Address: address,
  9. }
  10. }
  11. type Attachments struct {
  12. Files []string
  13. BaseDir string
  14. }
  15. //SendMail 发送电邮
  16. func SendMail(subject string, content string, receiver, sender string,
  17. bcc []string, smtpConfig *SMTPConfig, attachments *Attachments) error {
  18. c := NewSMTPClient(smtpConfig)
  19. m := NewMail()
  20. err := m.AddTo(receiver) //receiver e.g. "Barry Gibbs <[email protected]>"
  21. if err != nil {
  22. return err
  23. }
  24. err = m.AddFrom(sender)
  25. if err != nil {
  26. return err
  27. }
  28. m.AddSubject(subject)
  29. //m.AddText("Some text :)")
  30. m.AddHTML(content)
  31. if attachments != nil {
  32. m.BaseDir = attachments.BaseDir
  33. for _, v := range attachments.Files {
  34. err = m.AddAttachment(v)
  35. if err != nil {
  36. return err
  37. }
  38. }
  39. }
  40. for _, addr := range bcc {
  41. err = m.AddBCC(addr)
  42. if err != nil {
  43. return err
  44. }
  45. }
  46. return c.Send(m)
  47. }