make Mailer an interface

This commit is contained in:
dhax 2025-03-05 15:42:02 +01:00
parent dd2412463b
commit 08c09ffee7
10 changed files with 234 additions and 227 deletions

28
auth/pwdless/emails.go Normal file
View file

@ -0,0 +1,28 @@
package pwdless
import (
"os"
"time"
"github.com/dhax/go-base/email"
)
// ContentLoginToken defines content for login token email template.
type ContentLoginToken struct {
Email string
Name string
URL string
Token string
Expiry time.Time
}
// LoginTokenEmail creates and sends a login token email with provided template content.
func LoginTokenEmail(name, address string, content ContentLoginToken) email.Message {
return email.Message{
From: email.NewEmail(os.Getenv("EMAIL_FROM_NAME"), os.Getenv("EMAIL_FROM_ADDRESS")),
To: email.NewEmail(name, address),
Subject: "Login Token",
Template: "loginToken",
Content: content,
}
}