feat: new emails design

This commit is contained in:
fsylvain committed 2026-09-26 05:41:34 +02:00
1 parent 4e41d60142
commit 30a4df47b1
15 files changed
+498 -68

No files matched your search

@@ -22,6 +22,32 @@ func NewMailRepository(smtp config.SmtpSettings) *MailRepository {
return &MailRepository{smtp: smtp}
}
const defaultSubject = "RenewCMS | Action required"
func (m MailRepository) Render(templateName string, data any) (string, string, error) {
subject := defaultSubject
switch templateName {
case "verification":
subject = "Verify your RenewCMS account"
case "password-reset":
subject = "Reset your RenewCMS password"
}
tmpl, err := template.ParseFS(mailTemplateFiles, "templates/"+templateName+".html")
if err != nil {
log.Println("error when template.ParseFS:", err)
return subject, "", err
}
var body bytes.Buffer
if err := tmpl.Execute(&body, data); err != nil {
log.Println("error when tmpl.Execute:", err)
return subject, "", err
}
return subject, body.String(), nil
}
func (m MailRepository) Send(receiverAddress string, templateName string, data any) error {
login := m.smtp.Login
sender := m.smtp.Sender
@@ -31,16 +57,8 @@ func (m MailRepository) Send(receiverAddress string, templateName string, data a
d := gomail.NewDialer(smtpHost, smtpPort, login, password)
tmpl, err := template.ParseFS(mailTemplateFiles, "templates/"+templateName+".html")
subject, body, err := m.Render(templateName, data)
if err != nil {
log.Println("error when template.ParseFS:", err)
return err
}
var body bytes.Buffer
err = tmpl.Execute(&body, data)
if err != nil {
log.Println("error when tmpl.Execute:", err)
return err
}
@@ -48,9 +66,9 @@ func (m MailRepository) Send(receiverAddress string, templateName string, data a
msg.SetHeaders(map[string][]string{
"From": {"RenewCMS <" + sender + ">"},
"To": {receiverAddress},
"Subject": {"RenewCMS | Action required"},
"Subject": {subject},
})
msg.SetBody("text/html", body.String())
msg.SetBody("text/html", body)
if err := d.DialAndSend(msg); err != nil {
log.Println("error when sending email:", err)