Implement mailer and add welcome email for POP account
This commit is contained in:
parent
a6b926c9bf
commit
b582b10360
10 changed files with 170 additions and 3 deletions
66
helpers/authelia/mail.go
Normal file
66
helpers/authelia/mail.go
Normal 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)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue