pop-camarades/helpers/authelia/mail.go

66 lines
1.1 KiB
Go

package authelia
import (
ht "html/template"
tt "text/template"
"git.readonly.ch/bouzoure/pop-camarades/helpers"
"git.readonly.ch/bouzoure/pop-camarades/models"
)
type InputWelcomeMail struct {
Person models.Person
ResetURL string
}
func SendWelcomeMail(person models.Person) error {
config, err := helpers.GetConfig()
if err != nil {
return err
}
mailer, err := helpers.GetMailer()
if err != nil {
return err
}
msg, err := helpers.NewMessage()
if err != nil {
return err
}
mailsFS, err := helpers.GetEmbeddedFS("mails")
if err != nil {
return err
}
inputValues := InputWelcomeMail{
Person: person,
ResetURL: config.Authelia.ResetURL,
}
tplHTML, err := ht.ParseFS(mailsFS, "mails/welcome.html")
if err != nil {
return err
}
tplTXT, err := tt.ParseFS(mailsFS, "mails/welcome.txt")
if err != nil {
return err
}
msg.Subject("Ton compte POP Vaud")
msg.AddTo(person.Email)
err = msg.SetBodyHTMLTemplate(tplHTML, inputValues)
if err != nil {
return err
}
err = msg.AddAlternativeTextTemplate(tplTXT, inputValues)
if err != nil {
return err
}
return mailer.DialAndSend(msg)
}