66 lines
1.1 KiB
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)
|
|
}
|