38 lines
745 B
Go
38 lines
745 B
Go
package mail
|
|
|
|
import (
|
|
"github.com/mayswind/ezbookkeeping/pkg/settings"
|
|
)
|
|
|
|
// MailerContainer contains the current mailer
|
|
type MailerContainer struct {
|
|
Current Mailer
|
|
}
|
|
|
|
// Initialize a mailer container singleton instance
|
|
var (
|
|
Container = &MailerContainer{}
|
|
)
|
|
|
|
// InitializeMailer initializes the current mailer according to the config
|
|
func InitializeMailer(config *settings.Config) error {
|
|
if !config.EnableSMTP {
|
|
Container.Current = nil
|
|
return nil
|
|
}
|
|
|
|
mailer, err := NewDefaultMailer(config.SMTPConfig)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
Container.Current = mailer
|
|
return nil
|
|
}
|
|
|
|
// SendMail sends an email according to argument
|
|
func (u *MailerContainer) SendMail(message *MailMessage) error {
|
|
return u.Current.SendMail(message)
|
|
}
|