potato/pkg/email/email.go

43 lines
809 B
Go

/*
* @Date: 2021-06-12 22:38:40
* @LastEditors: viletyy
* @LastEditTime: 2021-06-12 23:11:47
* @FilePath: /potato/pkg/email/email.go
*/
package email
import (
"crypto/tls"
"gopkg.in/gomail.v2"
)
type Email struct {
*SMTPInfo
}
type SMTPInfo struct {
Host string
Port int
IsSSL bool
UserName string
Password string
From string
}
func NewEmail(info *SMTPInfo) *Email {
return &Email{SMTPInfo: info}
}
func (e *Email) SendMail(to []string, subject, body string) error {
m := gomail.NewMessage()
m.SetHeader("From", e.From)
m.SetHeader("To", to...)
m.SetHeader("Subject", subject)
m.SetBody("text/html", body)
dialer := gomail.NewDialer(e.Host, e.Port, e.UserName, e.Password)
dialer.TLSConfig = &tls.Config{InsecureSkipVerify: e.IsSSL}
return dialer.DialAndSend(m)
}