依赖
go get -u github.com/jordan-wright/email
文档
示例代码
邮箱的相关配置
# email configuration
email:
port: 25 # 端口要配置25 否则可能出现EOF错误
from: xxx1@qq.com
host: smtp.qq.com
is-ssl: true
secret: xxxxx
nickname: 大锦余
发送邮件代码
package util
import (
"ToDoList/global"
"crypto/tls"
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
"strconv"
)
func SendEmail(to []string, subject string, body string) error {
from := global.GVA_CONFIG.Email.From
nickname := global.GVA_CONFIG.Email.Nickname
secret := global.GVA_CONFIG.Email.Secret
host := global.GVA_CONFIG.Email.Host
port, _ := strconv.Atoi(global.GVA_CONFIG.Email.Port)
isSSL := global.GVA_CONFIG.Email.IsSSL
auth := smtp.PlainAuth("", from, secret, host)
e := email.NewEmail()
if nickname != "" {
e.From = fmt.Sprintf("%s <%s>", nickname, from)
} else {
e.From = from
}
e.To = to
e.Subject = subject
e.HTML = []byte(body)
var err error
hostAddr := fmt.Sprintf("%s:%d", host, port)
if isSSL {
err = e.SendWithTLS(hostAddr, auth, &tls.Config{ServerName: host})
} else {
err = e.Send(hostAddr, auth)
}
return err
}