gomail库是golang常用来开发邮件功能的库,他的功能强大,可以满足正常的邮件发送功能,支持群发和添加附件的功能。
1. 安装gomail库
go get gopkg.in/gomail.v2
2. 代码如下
package main
import (
"gopkg.in/gomail.v2"
)
// MailboxConf 邮箱配置
type MailboxConf struct {
// 邮件标题
Title string
// 邮件内容
Body string
// 收件人列表
RecipientList []string
// 发件人账号
Sender string
// 发件人密码,QQ邮箱这里配置授权码
SPassword string
// SMTP 服务器地址, QQ邮箱是smtp.qq.com
SMTPAddr string
// SMTP端口 QQ邮箱是25
SMTPPort int
}
func main() {
var mailConf MailboxConf
mailConf.Title = "测试用gomail发送邮件"
mailConf.Body = "Good Good Study, Day Day Up!!!!!!"
mailConf.RecipientList = []string{`[email protected]`}
mailConf.Sender = `[email protected]`
mailConf.SPassword = "xxx"
mailConf.SMTPAddr = `smtp.qq.com`
mailConf.SMTPPort = 25
m := gomail.NewMessage()
m.SetHeader(`From`, mailConf.Sender)
m.SetHeader(`To`, mailConf.RecipientList...)
m.SetHeader(`Subject`, mailConf.Title)
m.SetBody(`text/html`, mailConf.Body)
m.Attach("./Dockerfile") //添加附件
err := gomail.NewDialer(mailConf.SMTPAddr, mailConf.SMTPPort, mailConf.Sender, mailConf.SPassword).DialAndSend(m)
if err != nil {
log.Fatalf("Send Email Fail, %s", err.Error())
return
}
log.Printf("Send Email Success")
}
运行代码:
可以看到邮件已经发送成功了,检查邮箱是否收到邮件: