mailtest.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package main
  2. import (
  3. "fmt"
  4. "gopkg.in/gomail.v2"
  5. "log"
  6. )
  7. type EmailParam struct {
  8. MailFrom string
  9. MailPassword string
  10. MailTo []string
  11. MailHost string
  12. MailPort int
  13. MailSubject string
  14. MailContent string
  15. }
  16. func main(){
  17. email := EmailParam{
  18. MailFrom:"987795300@qq.com", //发件人
  19. MailPassword:"stiifwetcmngbaic", //密码(qq为授权码)
  20. MailTo:[]string{"weixuemei@twindefender.com"}, //收件人,可有多个
  21. MailHost:"smtp.qq.com", //邮件服务器
  22. MailPort:587, //邮件服务器端口
  23. }
  24. email.MailSubject ="Hello" //邮件主题
  25. email.MailContent ="Hello,This is a test" //邮件内容
  26. err := SendMail(email)
  27. if err != nil {
  28. log.Fatal(err.Error())
  29. }
  30. fmt.Println("send successfully")
  31. }
  32. func SendMail(emailParam EmailParam) error{
  33. m := gomail.NewMessage()
  34. m.SetHeader("From",emailParam.MailFrom)
  35. m.SetHeader("To", emailParam.MailTo...)
  36. m.SetHeader("Subject", emailParam.MailSubject)
  37. m.SetBody("text/html", emailParam.MailContent)
  38. //m.SetHeader("Cc", toers...) //抄送
  39. d := gomail.NewDialer(emailParam.MailHost, emailParam.MailPort, emailParam.MailFrom, emailParam.MailPassword)
  40. err := d.DialAndSend(m)
  41. if err != nil{
  42. return err
  43. }
  44. return nil
  45. }