使用Go发送邮件

go原生的mail库不支持AWS的SES服务发送邮件, 在github上找了别的库来实现邮件发送的功能.

首先安装

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
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注