### 介绍
** 文章转自go语言中文文档 [http://www.topgoer.com](http://www.topgoer.com/?from=studygolang "文章转自go语言中文文档http://www.topgoer.com") **
Gomail是用于发送电子邮件的简单高效的软件包。它已经过充分测试和记录。
Gomail只能使用SMTP服务器发送电子邮件。但是该API灵活,可以很容易地实现其他使用本地Postfix,API等发送电子邮件的方法。
它使用gopkg.in进行了版本控制,因此我保证每个版本都不会存在向后不兼容的更改。
它需要Go 1.2或更高版本。对于Go 1.5,不使用任何外部依赖项。
插件地址:https://github.com/go-gomail/gomail/tree/v2
### 特征
Gomail支持:
+ 附件
+ 嵌入式图片
+ HTML和文本模板
+ 自动编码特殊字符
+ SSL和TLS
+ 使用相同的SMTP连接发送多封电子邮件
**无附件邮箱发送**
```go
package main
import (
"fmt"
"log"
"strconv"
"gopkg.in/gomail.v2"
)
func SendMail(mailTo []string, subject string, body string) error {
mailConn := map[string]string{
"user": "914145759@qq.com",
"pass": "dqalbdjiamskbehg",
//大家一定要注意,这里的密码不是你的邮箱的密码
//是你的邮箱申请给你的一个 --授权码---
"host": "smtp.qq.com",
"port": "25",
}
port, _ := strconv.Atoi(mailConn["port"]) //转换端口类型为int
m := gomail.NewMessage()
m.SetHeader("From", m.FormatAddress(mailConn["user"], "go的慢慢学习路”")) //设置邮件发送人别名容易发送入垃圾箱
// 这种方式可以添加别名,即“go的慢慢学习路”
// 说明:如果是用网易邮箱账号发送,以下方法别名可以是中文,如果是qq企业邮箱,以下方法用中文别名,会报错,需要用上面此方法转码
//m.SetHeader("From", "FB Sample"+"<"+mailConn["user"]+">") //这种方式可以添加别名,即“FB Sample”, 也可以直接用<code>m.SetHeader("From",mailConn["user"])</code> 读者可以自行实验下效果
//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
}
func main() {
//定义收件人
mailTo := []string{
"2990446079@qq.com", //设置多个邮箱可以群发
}
subject := "这是邮件的主题"
body := "<h1>这是邮件正文</h1>"
err := SendMail(mailTo, subject, body)
if err != nil {
log.Println(err)
fmt.Println("send fail")
return
}
fmt.Println("send successfully")
}
```
有疑问加站长微信联系(非本文作者))