fleet/server/mail/users.go
2024-11-05 11:16:24 -06:00

55 lines
1.2 KiB
Go

package mail
import (
"bytes"
"html/template"
"time"
"github.com/fleetdm/fleet/v4/server"
)
type ChangeEmailMailer struct {
BaseURL template.URL
AssetURL template.URL
Token string
CurrentYear int
}
func (cem *ChangeEmailMailer) Message() ([]byte, error) {
cem.CurrentYear = time.Now().Year()
t, err := server.GetTemplate("server/mail/templates/change_email_confirmation.html", "email_template")
if err != nil {
return nil, err
}
var msg bytes.Buffer
err = t.Execute(&msg, cem)
if err != nil {
return nil, err
}
return msg.Bytes(), nil
}
type PasswordResetMailer struct {
// Base URL to use for Fleet endpoints
BaseURL template.URL
// URL for loading image assets
AssetURL template.URL
// Token password reset token
Token string
// Current year for copyright year
CurrentYear int
}
func (r PasswordResetMailer) Message() ([]byte, error) {
r.CurrentYear = time.Now().Year() // nolint:staticcheck // SA4005 false positive for Go templates
t, err := server.GetTemplate("server/mail/templates/password_reset.html", "email_template")
if err != nil {
return nil, err
}
var msg bytes.Buffer
if err = t.Execute(&msg, r); err != nil {
return nil, err
}
return msg.Bytes(), nil
}