Implement mailer and add welcome email for POP account

This commit is contained in:
William Bouzourène 2026-05-05 18:58:40 +02:00
parent a6b926c9bf
commit b582b10360
Signed by: bouzoure
GPG key ID: 423440D735B56BE2
10 changed files with 170 additions and 3 deletions

66
helpers/authelia/mail.go Normal file
View file

@ -0,0 +1,66 @@
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)
}