gomail 是一个用于发送电子邮件的简单且高效的第三方开源库, 目前只支持使用SMTP服务发送电子邮件, 但是其API较为灵活, 如果其他定制需求, 则可以轻易地借助其实现.
Demo
package main
import (
"crypto/tls"
"gopkg.in/gomail.v2"
"log"
)
type SMTPInfo struct {
Host string
Port int
IsSSL bool
UserName string
Password string
From string
}
func main() {
info := &SMTPInfo{
Host: "smtp.qq.com",
Port: 465,
IsSSL: false,
UserName: "[email protected]",
Password: "zjtdptrhsiyudgca",
From: "[email protected]",
}
message := gomail.NewMessage()
message.SetHeader("From", info.From)
message.SetHeader("To", "[email protected]")
//设置主体
message.SetHeader("Subject", "hello")
//设置正文
message.SetBody("text/html", "dear Li, how are you?")
dialer := gomail.NewDialer(info.Host, info.Port, info.UserName, info.Password)
dialer.TLSConfig = &tls.Config{
InsecureSkipVerify: true}
err := dialer.DialAndSend(message)
if err != nil {
log.Printf("邮件发送失败 %v", err)
return
}
log.Println("ok")
}