1、使用的包是 "gopkg.in/gomail.v2"
2、直接上代码
// address1, address2 支持多个参数
func sendEmail(addresses string, content string) {
d := gomail.NewDialer("mail.xxxx.xx", 587, "xxxxx@xxx.com", "密码")
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
// 1. 首先构建一个 Message 对象,也就是邮件对象
msg := gomail.NewMessage()
// 2. 填充 From,注意第一个字母要大写
msg.SetHeader("From", "Xxxxx@xxx.com")
// 3. 填充 To
msg.SetHeader("To", addresses)
// 4. 如果需要可以填充 cc,也就是抄送
// msg.SetHeader("Cc", "cc_address@example.com")
// 5. 设置邮件标题
msg.SetHeader("Subject", "Jenkins提醒")
// 6. 设置要发送的邮件正文
// 第一个参数是类型,第二个参数是内容
// 如果是 html,第一个参数则是 `text/html` 如果是文本则是"text/plain"
msg.SetBody("text/html", content)
if e := d.DialAndSend(msg); e != nil {
log.Println("报错:", e.Error())
}
}
3、参数传入接收对象和内容(html)
var recv *string
var msg *string
func main() {
recv = flag.String("r", "", "要通知的人,如:张三")
msg = flag.String("m", "", "内容")
flag.Parse()
if *recv == "" || *recv == "无" || *recv == "不通知" {
log.Println("没设置要通知的人")
return
}
if *msg == "" {
log.Println("没设置要通知的内容")
return
}
addrs := strings.Split(*recv, ",")
for i := 0; i < len(addrs); i++ {
sendEmail(addrs[i], *msg)
}
}
把build出来的二进制ln到/usr/bin
就可以在Jenkins里随意调用了
结合Jenkins的一些环境变量
怎么全码了
4、配合自己的邮箱服务,可以随便玩了