From 8f0291bb8aa153cacd179a802657dcf89c2cf3f8 Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Mon, 13 Apr 2026 09:13:49 -0400 Subject: [PATCH] make small changes to the email package --- src/email/email.go | 22 +++++++++++----------- src/email/render_template.go | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 src/email/render_template.go diff --git a/src/email/email.go b/src/email/email.go index 769f7c4..10fa498 100644 --- a/src/email/email.go +++ b/src/email/email.go @@ -16,26 +16,26 @@ type EmailAccount struct { } type EmailAccountData struct { - username string - password string - email string + Username string + Password string + Email string } -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) +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) account := EmailAccount{ - email: accountData.email, + email: accountData.Email, smtpHost: smtpHost, smtpPort: strconv.Itoa(smtpPort), } - account.auth = smtp.PlainAuth("", accountData.username, accountData.password, smtpHost) + account.auth = smtp.PlainAuth("", accountData.Username, accountData.Password, smtpHost) return account } -func sendEmail(account EmailAccount, toEmail []string, subject string, message string) { - logging.Debugf("Sending an email from %s to %s", account.email, strings.Join(toEmail, "")) +func (account *EmailAccount) SendEmail(toEmails []string, subject string, message string) { + logging.Debugf("Sending an email from %s to %s", account.email, strings.Join(toEmails, "")) - ToEmailList := strings.Join(toEmail, "") + ToEmailList := strings.Join(toEmails, "") messageData := []byte( "From: " + account.email + "\r\n" + @@ -44,7 +44,7 @@ func sendEmail(account EmailAccount, toEmail []string, subject string, message s "\r\n" + 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 { logging.Error("Failed to send email") logging.Error(err.Error()) diff --git a/src/email/render_template.go b/src/email/render_template.go new file mode 100644 index 0000000..ad82fe3 --- /dev/null +++ b/src/email/render_template.go @@ -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 +}