40 lines
730 B
Go
40 lines
730 B
Go
package email
|
|
|
|
import (
|
|
"gopkg.in/gomail.v2"
|
|
)
|
|
|
|
type SmtpServer struct {
|
|
Host string
|
|
Port int
|
|
User string
|
|
Password string
|
|
}
|
|
|
|
type Email interface {
|
|
Send()
|
|
}
|
|
|
|
func NewSmtpServer(Host string, Port int, User string, Password string) SmtpServer {
|
|
return SmtpServer{
|
|
Host: Host,
|
|
Port: Port,
|
|
User: User,
|
|
Password: Password,
|
|
}
|
|
}
|
|
|
|
func (mail *SmtpServer) Send(dst string, subject string, body string) error {
|
|
m := gomail.NewMessage()
|
|
m.SetHeader("From", mail.User)
|
|
m.SetHeader("To", dst)
|
|
m.SetHeader("Subject", subject)
|
|
m.SetBody("text/html", body)
|
|
d := gomail.NewDialer(mail.Host, mail.Port, mail.User, mail.Password)
|
|
|
|
if err := d.DialAndSend(m); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|