goEmail发送邮件

使用gopkg.in/gomail.v2,发送邮件

func SendMail(mailTo []string,subject string, body string ) error {
   mailConn := map[string]string {
      "user": "[email protected]",
      "pass": "xxxxx",
      "host": "smtp.xx.com",
      "port": "465",
   }

   port, _ := strconv.Atoi(mailConn["port"]) 
   m := gomail.NewMessage()
   m.SetHeader("From",mailConn["user"])
   //发送给多个用户
   m.SetHeader("To", mailTo...)
   //设置邮件主题
   m.SetHeader("Subject", subject)
   //设置邮件正文
   m.SetBody("text/html", body)

   d := gomail.NewDialer(mailConn["host"], port, mailConn["user"], mailConn["pass"])
   err := d.DialAndSend(m)
   return err
}

注意:

  1. 配置mailConn时,如果是163或者qq的邮箱的话首先需要开通smtp支持 pass填的就是授权码;企业邮箱的话可以填密码;
  2. mailConn中的user是发送者邮箱账号
  3. mailConn中的host指SMTP服务的域名;163邮箱的smtp host是smtp.163.com;qq邮箱的smtp host是smtp.qq.com;具体host可以自行百度查找;
  4. SetHeader()可以设置发送者的别名;也可以省略别名的设置;设置别名:m.SetHeader("From","other Name" + "<" + mailConn["user"] + ">")
  5. m.SetHeader()可以设置发送方为多个,以切片的方式传入;
func main()  {
   //定义收件人,可以群发
   mailTo := []string {
      "[email protected]",
   }
   //设置邮件主题
   subject := "Hello"
   // 邮件正文
   body := "Nice to meet you!"
   err := SendMail(mailTo, subject, body)
   if err != nil {
      println(err.Error())
   }
}

你可能感兴趣的:(GO语言,网络通信,golang)