make small changes to the email package

This commit is contained in:
2026-04-13 09:13:49 -04:00
parent cde41b82b2
commit 8f0291bb8a
2 changed files with 34 additions and 11 deletions

View File

@@ -16,26 +16,26 @@ type EmailAccount struct {
} }
type EmailAccountData struct { type EmailAccountData struct {
username string Username string
password string Password string
email string Email string
} }
func createEmailAccount(accountData EmailAccountData, smtpHost string, smtpPort int) EmailAccount { func CreateEmailAccount(accountData EmailAccountData, smtpHost string, smtpPort int) EmailAccount {
logging.Debugf("Creating Email Account: \n\tUsername: %s\n\tEmail: %s\n\tSMTP Host: %s:%d", accountData.username, accountData.email, smtpHost, smtpPort) logging.Debugf("Creating Email Account: \n\tUsername: %s\n\tEmail: %s\n\tSMTP Host: %s:%d", accountData.Username, accountData.Email, smtpHost, smtpPort)
account := EmailAccount{ account := EmailAccount{
email: accountData.email, email: accountData.Email,
smtpHost: smtpHost, smtpHost: smtpHost,
smtpPort: strconv.Itoa(smtpPort), smtpPort: strconv.Itoa(smtpPort),
} }
account.auth = smtp.PlainAuth("", accountData.username, accountData.password, smtpHost) account.auth = smtp.PlainAuth("", accountData.Username, accountData.Password, smtpHost)
return account return account
} }
func sendEmail(account EmailAccount, toEmail []string, subject string, message string) { func (account *EmailAccount) SendEmail(toEmails []string, subject string, message string) {
logging.Debugf("Sending an email from %s to %s", account.email, strings.Join(toEmail, "")) logging.Debugf("Sending an email from %s to %s", account.email, strings.Join(toEmails, ""))
ToEmailList := strings.Join(toEmail, "") ToEmailList := strings.Join(toEmails, "")
messageData := []byte( messageData := []byte(
"From: " + account.email + "\r\n" + "From: " + account.email + "\r\n" +
@@ -44,7 +44,7 @@ func sendEmail(account EmailAccount, toEmail []string, subject string, message s
"\r\n" + "\r\n" +
message, message,
) )
err := smtp.SendMail(account.smtpHost+":"+account.smtpPort, account.auth, account.email, toEmail, messageData) err := smtp.SendMail(account.smtpHost+":"+account.smtpPort, account.auth, account.email, toEmails, messageData)
if err != nil { if err != nil {
logging.Error("Failed to send email") logging.Error("Failed to send email")
logging.Error(err.Error()) logging.Error(err.Error())

View File

@@ -0,0 +1,23 @@
package email
import (
"bytes"
"text/template"
)
func RenderTemplate(baseURL string, path string, data any) (string, error) {
// funcMap := template.FuncMap{
// "asset": func(p string) string {
// return baseURL + "/" + strings.TrimPrefix(p, "/")
// },
// }
tmpl := template.Must(template.ParseFiles(path))
var buf bytes.Buffer
err := tmpl.Execute(&buf, data)
if err != nil {
return "", err
}
return buf.String(), nil
}