使用Go发送邮件

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

首先安装

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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

下面是代码

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
}

评论

发表回复

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