49 lines
782 B
Go
49 lines
782 B
Go
package helpers
|
|
|
|
import (
|
|
"github.com/wneessen/go-mail"
|
|
)
|
|
|
|
var mailer *mail.Client
|
|
var mailerSet bool
|
|
|
|
func GetMailer() (*mail.Client, error) {
|
|
if mailerSet {
|
|
return mailer, nil
|
|
}
|
|
|
|
config, err := GetConfig()
|
|
if err != nil {
|
|
return mailer, err
|
|
}
|
|
|
|
mailer, err = mail.NewClient(
|
|
config.Mail.Host,
|
|
mail.WithPort(config.Mail.Port),
|
|
mail.WithSMTPAuth(mail.SMTPAuthAutoDiscover),
|
|
mail.WithUsername(config.Mail.Username),
|
|
mail.WithPassword(config.Mail.Password),
|
|
)
|
|
if err != nil {
|
|
return mailer, err
|
|
}
|
|
|
|
mailerSet = true
|
|
return mailer, nil
|
|
}
|
|
|
|
func NewMessage() (*mail.Msg, error) {
|
|
msg := mail.NewMsg()
|
|
|
|
config, err := GetConfig()
|
|
if err != nil {
|
|
return msg, err
|
|
}
|
|
|
|
msg.FromFormat(
|
|
config.Mail.FromName,
|
|
config.Mail.FromAddress,
|
|
)
|
|
|
|
return msg, nil
|
|
}
|