go原生的mail库不支持AWS的SES服务发送邮件, 在github上找了别的库来实现邮件发送的功能.
首先安装
go get github.com/xhit/go-simple-mail/v2
go get github.com/xhit/go-simple-mail/v2
go get github.com/xhit/go-simple-mail/v2
下面是代码
import mail "github.com/xhit/go-simple-mail/v2"
type MailContent struct {
To []string
Body string
Subject string
}
func (n Notice) SendMail(content global.MailContent) error {
server := mail.NewSMTPClient()
server.Host = 你的SMTP服务器
server.Port = SMTP端口
server.Username = SMTP用户名
server.Password = 密码
server.Encryption = mail.EncryptionSTARTTLS
server.TLSConfig = &tls.Config{InsecureSkipVerify: true}
server.KeepAlive = false
server.ConnectTimeout = 10 * time.Second
server.SendTimeout = 10 * time.Second
smtpClient, err := server.Connect()
if err != nil {
return err
}
email := mail.NewMSG()
email.SetFrom(邮箱账号)
for _, i := range content.To {
email.AddTo(i)
}
email.SetSubject(content.Subject)
email.SetBody(mail.TextHTML, content.Body)
if email.Error != nil {
global.Logger.Errorf("设置邮件失败:%v", email.Error)
return email.Error
}
if err := email.Send(smtpClient); err != nil {
global.Logger.Errorf("发送邮件失败:%v", err)
return err
}
return nil
}
import mail "github.com/xhit/go-simple-mail/v2"
type MailContent struct {
To []string
Body string
Subject string
}
func (n Notice) SendMail(content global.MailContent) error {
server := mail.NewSMTPClient()
server.Host = 你的SMTP服务器
server.Port = SMTP端口
server.Username = SMTP用户名
server.Password = 密码
server.Encryption = mail.EncryptionSTARTTLS
server.TLSConfig = &tls.Config{InsecureSkipVerify: true}
server.KeepAlive = false
server.ConnectTimeout = 10 * time.Second
server.SendTimeout = 10 * time.Second
smtpClient, err := server.Connect()
if err != nil {
return err
}
email := mail.NewMSG()
email.SetFrom(邮箱账号)
for _, i := range content.To {
email.AddTo(i)
}
email.SetSubject(content.Subject)
email.SetBody(mail.TextHTML, content.Body)
if email.Error != nil {
global.Logger.Errorf("设置邮件失败:%v", email.Error)
return email.Error
}
if err := email.Send(smtpClient); err != nil {
global.Logger.Errorf("发送邮件失败:%v", err)
return err
}
return nil
}
import mail "github.com/xhit/go-simple-mail/v2" type MailContent struct { To []string Body string Subject string } func (n Notice) SendMail(content global.MailContent) error { server := mail.NewSMTPClient() server.Host = 你的SMTP服务器 server.Port = SMTP端口 server.Username = SMTP用户名 server.Password = 密码 server.Encryption = mail.EncryptionSTARTTLS server.TLSConfig = &tls.Config{InsecureSkipVerify: true} server.KeepAlive = false server.ConnectTimeout = 10 * time.Second server.SendTimeout = 10 * time.Second smtpClient, err := server.Connect() if err != nil { return err } email := mail.NewMSG() email.SetFrom(邮箱账号) for _, i := range content.To { email.AddTo(i) } email.SetSubject(content.Subject) email.SetBody(mail.TextHTML, content.Body) if email.Error != nil { global.Logger.Errorf("设置邮件失败:%v", email.Error) return email.Error } if err := email.Send(smtpClient); err != nil { global.Logger.Errorf("发送邮件失败:%v", err) return err } return nil }
发表回复