### 介紹
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")
}
```